From 6c3b68a0280406fc68b880900485fb3686dead42 Mon Sep 17 00:00:00 2001 From: Sergej Sakac <73715684+Szegoo@users.noreply.github.com> Date: Tue, 24 Oct 2023 20:32:55 +0200 Subject: [PATCH] User selectable network (#72) * Additional checks when transferring * remove empty line * Selecting network * fix * fixes * working :) * update contract metadata * fully working * change function signatures * list all chains on share identity * update identityKey format to contain info about network * identityKey works, transfer doesnt * fixes --- .env.example | 3 +- __tests__/identityKey.test.ts | 37 +- chaindata/index.ts | 40 +- src/components/Cards/AddressCard/index.tsx | 9 +- src/components/Modals/AddAddress/index.tsx | 12 +- src/components/Modals/AddIdentity/index.tsx | 29 +- src/components/Modals/EditAddress/index.tsx | 14 +- src/components/Modals/ShareIdentity/index.tsx | 43 +- src/components/RelaySelect/index.tsx | 27 ++ src/components/Sidebar/index.module.scss | 5 + src/components/Sidebar/index.tsx | 9 +- src/consts/index.ts | 4 + src/contexts/RelayApi/index.tsx | 48 ++- src/contracts/addressbook/metadata.json | 2 +- src/contracts/identity/context.tsx | 52 ++- src/contracts/identity/metadata.json | 372 ++++++++++-------- src/pages/_app.tsx | 54 +-- src/pages/transfer.tsx | 32 +- src/utils/identityKey.ts | 54 +-- src/utils/xcmTransfer/index.ts | 7 +- src/utils/xcmTransfer/teleportableRoutes.ts | 5 +- types/build-extrinsic/identity.ts | 36 +- types/constructors/identity.ts | 4 +- types/contract-info/address_book.ts | 4 +- types/contract-info/identity.ts | 4 +- types/data/identity.json | 226 +++++++++-- types/event-data/identity.json | 2 +- types/event-types/identity.ts | 12 +- types/mixed-methods/identity.ts | 46 +-- types/query/identity.ts | 66 ++-- types/tx-sign-and-send/identity.ts | 36 +- types/types-arguments/identity.ts | 7 +- types/types-returns/identity.ts | 7 +- 33 files changed, 829 insertions(+), 479 deletions(-) create mode 100644 src/components/RelaySelect/index.tsx diff --git a/.env.example b/.env.example index fd90eb7..b6eeb41 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,2 @@ CONTRACT_IDENTITY="AddressOfIdentityContract" -CONTRACT_ADDRESS_BOOK="AddressOfAddressBookContract" -RELAY_CHAIN="kusama_or_polkadot" \ No newline at end of file +CONTRACT_ADDRESS_BOOK="AddressOfAddressBookContract" \ No newline at end of file diff --git a/__tests__/identityKey.test.ts b/__tests__/identityKey.test.ts index 2fa28e0..2aedca1 100644 --- a/__tests__/identityKey.test.ts +++ b/__tests__/identityKey.test.ts @@ -7,13 +7,13 @@ describe("IdentityKey", () => { let identityKey = ""; const polkadotChainId = 0; - identityKey = IdentityKey.newCipher(identityKey, polkadotChainId); + identityKey = IdentityKey.newCipher(identityKey, polkadotChainId, "polkadot"); containsChainAndCipher(identityKey, polkadotChainId); const moonbeamChainId = 1; // Generate a new cipher for the Moonbeam chain. - identityKey = IdentityKey.newCipher(identityKey, moonbeamChainId); + identityKey = IdentityKey.newCipher(identityKey, moonbeamChainId, "polkadot"); // The identity Key should still have the Polkadot cipher. containsChainAndCipher(identityKey, polkadotChainId); @@ -21,13 +21,13 @@ describe("IdentityKey", () => { containsChainAndCipher(identityKey, moonbeamChainId); // Ciphers are randomly generated so the two ciphers cannot be the same. - const polkadotCipher = IdentityKey.getChainCipher(identityKey, polkadotChainId); - const moonbeamCipher = IdentityKey.getChainCipher(identityKey, moonbeamChainId); + const polkadotCipher = IdentityKey.getChainCipher(identityKey, polkadotChainId, "polkadot"); + const moonbeamCipher = IdentityKey.getChainCipher(identityKey, moonbeamChainId, "polkadot"); expect(polkadotCipher).not.toBe(moonbeamCipher); // Cannot create a new Cipher for the same chain twice. - expect(() => IdentityKey.newCipher(identityKey, moonbeamChainId)) + expect(() => IdentityKey.newCipher(identityKey, moonbeamChainId, "polkadot")) .toThrow("There already exists a cipher that is attached to the provided chainId"); }); @@ -37,49 +37,46 @@ describe("IdentityKey", () => { const polkadotChainId = 0; const moonbeamChainId = 1; - identityKey = IdentityKey.newCipher(identityKey, polkadotChainId); - identityKey = IdentityKey.newCipher(identityKey, moonbeamChainId); + identityKey = IdentityKey.newCipher(identityKey, polkadotChainId, "polkadot"); + identityKey = IdentityKey.newCipher(identityKey, moonbeamChainId, "polkadot"); containsChainAndCipher(identityKey, polkadotChainId); containsChainAndCipher(identityKey, moonbeamChainId); - const polkadotCipher = IdentityKey.getChainCipher(identityKey, polkadotChainId); - const moonbeamCipher = IdentityKey.getChainCipher(identityKey, moonbeamChainId); + const polkadotCipher = IdentityKey.getChainCipher(identityKey, polkadotChainId, "polkadot"); + const moonbeamCipher = IdentityKey.getChainCipher(identityKey, moonbeamChainId, "polkadot"); - identityKey = IdentityKey.updateCipher(identityKey, moonbeamChainId); - const newMoonbeamCipher = IdentityKey.getChainCipher(identityKey, moonbeamChainId); + identityKey = IdentityKey.updateCipher(identityKey, moonbeamChainId, "polkadot"); + const newMoonbeamCipher = IdentityKey.getChainCipher(identityKey, moonbeamChainId, "polkadot"); // The moonbeam chain cipher should be updated. expect(moonbeamCipher).not.toBe(newMoonbeamCipher); // The polkadot cipher shouldn't be affected. - expect(IdentityKey.getChainCipher(identityKey, polkadotChainId)).toBe(polkadotCipher); - - // Cannot update a cipher of a chain that does not exist. - expect(() => IdentityKey.updateCipher(identityKey, 42)).toThrow("Cannot find chainId"); + expect(IdentityKey.getChainCipher(identityKey, polkadotChainId, "polkadot")).toBe(polkadotCipher); }); test("Encryption and decryption works", () => { let identityKey = ""; const polkadotChainId = 0; - identityKey = IdentityKey.newCipher(identityKey, polkadotChainId); + identityKey = IdentityKey.newCipher(identityKey, polkadotChainId, "polkadot"); containsChainAndCipher(identityKey, polkadotChainId); const polkadotAddress = "126X27SbhrV19mBFawys3ovkyBS87SGfYwtwa8J2FjHrtbmA"; - const encryptedAddress = IdentityKey.encryptAddress(identityKey, polkadotChainId, polkadotAddress); - const decryptedAddress = IdentityKey.decryptAddress(identityKey, polkadotChainId, encryptedAddress); + const encryptedAddress = IdentityKey.encryptAddress(identityKey, polkadotChainId, polkadotAddress, "polkadot"); + const decryptedAddress = IdentityKey.decryptAddress(identityKey, polkadotChainId, encryptedAddress, "polkadot"); expect(polkadotAddress).toBe(decryptedAddress); }); }); const containsChainAndCipher = (identityKey: string, chainId: number) => { - const containsChain = new RegExp(`\\b${chainId}:`, "g"); + const containsChain = new RegExp(`\\bpolkadot${chainId}:`, "g"); expect(containsChain.test(identityKey)).toBe(true); - const chainCipher = IdentityKey.getChainCipher(identityKey, chainId); + const chainCipher = IdentityKey.getChainCipher(identityKey, chainId, "polkadot"); expect(cipherSize(chainCipher)).toBe(16); } diff --git a/chaindata/index.ts b/chaindata/index.ts index 4c65f97..8a1af9c 100644 --- a/chaindata/index.ts +++ b/chaindata/index.ts @@ -1,4 +1,3 @@ -import { RELAY_CHAIN } from "@/consts"; import { gql, request } from "graphql-request" const graphqlUrl = "https://squid.subsquid.io/chaindata/v/v4/graphql" @@ -71,37 +70,50 @@ query ChainByParaIdAndRelay($relayId: String!) { `; const tokensQuery = gql` -query tokens { - tokens(orderBy: id_ASC) { +query tokens($relayId: String!) { + tokens(orderBy: id_ASC, where: {squidImplementationDetailChain: {relay: {id_eq: $relayId}}}) { data } } `; -export class Chaindata { - private tokens: Array = []; - - public async load(): Promise { - const tokensResult: any = await request(graphqlUrl, tokensQuery); - this.tokens = tokensResult.tokens; +const relayTokensQuery = gql` +query tokens { + tokens(orderBy: id_ASC, where: {squidImplementationDetailChain: {relay_isNull: true}}) { + data } +} +`; - public async getChain(chainId: number): Promise { +export class Chaindata { + public async getChain(chainId: number, relay: string): Promise { if (chainId === 0) { const result: any = await request(graphqlUrl, relayQuery, { - relayId: RELAY_CHAIN + relayId: relay }); return result.chains[0]; } else { const result: any = await request(graphqlUrl, chainQuery, { paraId: chainId, - relayId: RELAY_CHAIN + relayId: relay }); return result.chains[0]; } } - public getTokens(): Array { - return this.tokens; + public async getTokens(relay: string | null): Promise> { + if (relay === null) { + const tokensResult: any = await request(graphqlUrl, relayTokensQuery, { + relayId: relay + }); + + return tokensResult.tokens; + } else { + const tokensResult: any = await request(graphqlUrl, tokensQuery, { + relayId: relay + }); + + return tokensResult.tokens; + } } } diff --git a/src/components/Cards/AddressCard/index.tsx b/src/components/Cards/AddressCard/index.tsx index 075c8e6..f0dfd54 100644 --- a/src/components/Cards/AddressCard/index.tsx +++ b/src/components/Cards/AddressCard/index.tsx @@ -17,6 +17,7 @@ import { clipAddress } from '@/utils'; import IdentityKey from '@/utils/identityKey'; import KeyStore from '@/utils/keyStore'; +import { useRelay } from '@/contexts/RelayApi'; import { useToast } from '@/contexts/Toast'; import { useIdentity } from '@/contracts'; import { Address, ChainId } from '@/contracts/types'; @@ -37,6 +38,7 @@ export const AddressCard = ({ data, onEdit }: AddressCardProps) => { const { api, activeAccount } = useInkathon(); const { toastSuccess, toastError } = useToast(); const { identityNo, chains, contract, fetchAddresses } = useIdentity(); + const { relay } = useRelay(); const [working, setWorking] = useState(false); @@ -57,7 +59,7 @@ export const AddressCard = ({ data, onEdit }: AddressCardProps) => { contract, 'remove_address', {}, - [chainId] + [[chainId, relay]] ); toastSuccess('Address is removed successfully.'); @@ -82,11 +84,12 @@ export const AddressCard = ({ data, onEdit }: AddressCardProps) => { const identityKey = KeyStore.readIdentityKey(identityNo) || ''; let decryptedAddress = address; - if (IdentityKey.containsChainId(identityKey, chainId)) { + if (IdentityKey.containsChainId(identityKey, chainId, relay)) { decryptedAddress = IdentityKey.decryptAddress( identityKey, chainId, - address + address, + relay, ); return { diff --git a/src/components/Modals/AddAddress/index.tsx b/src/components/Modals/AddAddress/index.tsx index 7bde045..7242921 100644 --- a/src/components/Modals/AddAddress/index.tsx +++ b/src/components/Modals/AddAddress/index.tsx @@ -17,11 +17,13 @@ import { import { contractTx, useInkathon } from '@scio-labs/use-inkathon'; import Image from 'next/image'; import { useEffect, useState } from 'react'; +import { Network } from 'types/types-arguments/identity'; import { isValidAddress } from '@/utils'; import IdentityKey from '@/utils/identityKey'; import KeyStore from '@/utils/keyStore'; +import { useRelay } from '@/contexts/RelayApi'; import { useToast } from '@/contexts/Toast'; import { useIdentity } from '@/contracts'; import { ChainId } from '@/contracts/types'; @@ -39,6 +41,7 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { const [chainId, setChainId] = useState(); const [chainAddress, setChainAddress] = useState(); const [working, setWorking] = useState(false); + const { relay } = useRelay(); const onSubmit = async () => { if (identityNo === null) { @@ -69,15 +72,16 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { let identityKey = KeyStore.readIdentityKey(identityNo) || ''; - if (!IdentityKey.containsChainId(identityKey, chainId)) { - identityKey = IdentityKey.newCipher(identityKey, chainId); + if (!IdentityKey.containsChainId(identityKey, chainId, relay)) { + identityKey = IdentityKey.newCipher(identityKey, chainId, relay); KeyStore.updateIdentityKey(identityNo, identityKey); } const encryptedAddress = IdentityKey.encryptAddress( identityKey, chainId, - chainAddress + chainAddress, + relay ); try { @@ -87,7 +91,7 @@ export const AddAddressModal = ({ open, onClose }: AddAddressModalProps) => { contract, 'add_address', {}, - [chainId, encryptedAddress] + [[chainId, relay === "polkadot" ? Network.polkadot : Network.kusama], encryptedAddress] ); toastSuccess('Successfully added your address.'); diff --git a/src/components/Modals/AddIdentity/index.tsx b/src/components/Modals/AddIdentity/index.tsx index 93f61f7..0dde295 100644 --- a/src/components/Modals/AddIdentity/index.tsx +++ b/src/components/Modals/AddIdentity/index.tsx @@ -30,7 +30,6 @@ export const AddIdentityModal = ({ open, onClose }: AddIdentityModalProps) => { const { contract, fetchIdentities } = useAddressBook(); const { toastError, toastSuccess } = useToast(); - const [identityNo, setIdentityNo] = useState(); const [identityKey, setIdentityKey] = useState(); const [nickname, setNickname] = useState(); const [working, setWorking] = useState(false); @@ -40,8 +39,11 @@ export const AddIdentityModal = ({ open, onClose }: AddIdentityModalProps) => { toastError('Please input identity key.'); return; } - if (identityNo === undefined) { - toastError('Please input identity no.'); + const firstColonIndex = identityKey.indexOf(':'); + const firstSemicolonIndex = identityKey.indexOf(';'); + const identityNo = Number(identityKey.substring(firstColonIndex + 1, firstSemicolonIndex)); + if (Number.isNaN(identityNo)) { + toastError("Invalid identity key."); return; } if (identityNo === myIdentity) { @@ -75,10 +77,9 @@ export const AddIdentityModal = ({ open, onClose }: AddIdentityModalProps) => { onClose(); } catch (e: any) { toastError( - `Failed to add identity. Error: ${ - e.errorMessage === 'Error' - ? 'Please check your balance.' - : e.errorMessage + `Failed to add identity. Error: ${e.errorMessage === 'Error' + ? 'Please check your balance.' + : e.errorMessage }` ); setWorking(false); @@ -89,7 +90,6 @@ export const AddIdentityModal = ({ open, onClose }: AddIdentityModalProps) => { setNickname(undefined); setWorking(false); setIdentityKey(undefined); - setIdentityNo(undefined); }, [open]); return ( @@ -121,19 +121,6 @@ export const AddIdentityModal = ({ open, onClose }: AddIdentityModalProps) => { {`${(nickname || '').length}/16`} - - Identity No - { - const value = Number(e.target.value); - value >= 0 && setIdentityNo(value); - }} - /> - Identity Key (''); const [working, setWorking] = useState(false); const [regenerate, setRegenerate] = useState(false); + const { relay } = useRelay(); const onSave = async () => { if (identityNo === null) { @@ -69,18 +72,19 @@ export const EditAddressModal = ({ let identityKey = KeyStore.readIdentityKey(identityNo) || ''; - if (!IdentityKey.containsChainId(identityKey, chainId)) { - identityKey = IdentityKey.newCipher(identityKey, chainId); + if (!IdentityKey.containsChainId(identityKey, chainId, relay)) { + identityKey = IdentityKey.newCipher(identityKey, chainId, relay); KeyStore.updateIdentityKey(identityNo, identityKey); } if (regenerate) - identityKey = IdentityKey.updateCipher(identityKey, chainId); + identityKey = IdentityKey.updateCipher(identityKey, chainId, relay); const encryptedAddress = IdentityKey.encryptAddress( identityKey, chainId, - newAddress + newAddress, + relay ); try { @@ -90,7 +94,7 @@ export const EditAddressModal = ({ contract, 'update_address', {}, - [chainId, encryptedAddress] + [[chainId, relay === "polkadot" ? Network.polkadot : Network.kusama], encryptedAddress] ); // Update the identity key when the user has updated his on-chain data KeyStore.updateIdentityKey(identityNo, identityKey); diff --git a/src/components/Modals/ShareIdentity/index.tsx b/src/components/Modals/ShareIdentity/index.tsx index 9517c03..7d7b1e4 100644 --- a/src/components/Modals/ShareIdentity/index.tsx +++ b/src/components/Modals/ShareIdentity/index.tsx @@ -31,17 +31,44 @@ export const ShareIdentityModal = ({ open, onClose, }: ShareIdentityModalProps) => { - const { identityNo, addresses, chains } = useIdentity(); + const { identityNo, getAllChains } = useIdentity(); const { toastError, toastSuccess } = useToast(); - const [checks, setChecks] = useState>({}); + const [chains, setChains] = useState([] as Array<{ id: number, name: string, relay: string }>); + const [checks, setChecks] = useState>({}); const [sharedKey, setSharedKey] = useState(''); + useEffect(() => { + if (identityNo == null) { + return; + } + + const getChains = async () => { + const result = await getAllChains(identityNo); + setChains(result); + } + getChains(); + }, [getAllChains, identityNo]); + useEffect(() => { if (identityNo === null) return; const selectedChains = Object.entries(checks) .filter((item) => item[1]) - .map((item) => Number(item[0])); + .map((item) => { + if (item[0].startsWith("polkadot")) { + const chainId = item[0].substring("polkadot".length); + return { + chainId: Number(chainId), + relay: "polkadot" + }; + } else { + const chainId = item[0].substring("kusama".length); + return { + chainId: Number(chainId), + relay: "kusama" + }; + } + }); const identityKey = KeyStore.readIdentityKey(identityNo) || ''; @@ -51,7 +78,7 @@ export const ShareIdentityModal = ({ } catch (e: any) { toastError(`Failed to get the identity key. Error: ${e.message}`); } - }, [checks, identityNo, toastError]); + }, [checks, identityNo, chains, sharedKey, toastError]); useEffect(() => setChecks({}), [open]); @@ -67,16 +94,16 @@ export const ShareIdentityModal = ({ able to access: - {addresses.map(({ chainId }, index) => ( - + {chains.map(({ id, name, relay }) => ( + setChecks({ ...checks, - [chainId]: e.target.checked, + [`${relay}${id}`]: e.target.checked, }) } /> diff --git a/src/components/RelaySelect/index.tsx b/src/components/RelaySelect/index.tsx new file mode 100644 index 0000000..51397ea --- /dev/null +++ b/src/components/RelaySelect/index.tsx @@ -0,0 +1,27 @@ +import { FormControl, InputLabel, MenuItem, Select } from "@mui/material" + +import { useRelay } from "@/contexts/RelayApi"; + +const RelaySelect = () => { + const { relay, setRelay } = useRelay(); + const handleChange = (e: any) => { + setRelay(e.target.value); + }; + + return ( + + Network + + + ); +}; + +export default RelaySelect; diff --git a/src/components/Sidebar/index.module.scss b/src/components/Sidebar/index.module.scss index 6aafba1..ee049cd 100644 --- a/src/components/Sidebar/index.module.scss +++ b/src/components/Sidebar/index.module.scss @@ -27,3 +27,8 @@ .active { color: var.$btnPrimary; } + +.networkSelect { + position: absolute; + bottom: 0; +} \ No newline at end of file diff --git a/src/components/Sidebar/index.tsx b/src/components/Sidebar/index.tsx index cd1eee1..5493d19 100644 --- a/src/components/Sidebar/index.tsx +++ b/src/components/Sidebar/index.tsx @@ -5,6 +5,7 @@ import { useRouter } from 'next/router'; import React from 'react'; import styles from './index.module.scss'; +import RelaySelect from '../RelaySelect'; interface MenuItemProps { label: string; route: string; @@ -15,9 +16,8 @@ const MenuItem = ({ label, route, icon }: MenuItemProps) => { const isActive = pathname === route; return (
push(route)} > {{ @@ -51,6 +51,9 @@ export const Sidebar = () => { {menuItems.map((item, index) => ( ))} +
+ +
); }; diff --git a/src/consts/index.ts b/src/consts/index.ts index 8cb52b8..f6b85d2 100644 --- a/src/consts/index.ts +++ b/src/consts/index.ts @@ -7,6 +7,10 @@ export const RELAY_CHAIN = (process.env.RELAY_CHAIN || 'polkadot') as RELAY_CHAI export const RELAY_CHAIN_ENDPOINT = RELAY_CHAIN_ENDPOINTS[RELAY_CHAIN]; export const ZERO = BigInt(0); +export const getRelayChainApiURL = (relay: "polkadot" | "kusama"): string => { + return RELAY_CHAIN_ENDPOINTS[relay]; +} + // NOTE: we do not need to store the name of these chains, but they are convenient // for us while reading to code to see which chains support local XCM execution. export const chainsSupportingXcmExecute = [ diff --git a/src/contexts/RelayApi/index.tsx b/src/contexts/RelayApi/index.tsx index 366765b..888f37f 100644 --- a/src/contexts/RelayApi/index.tsx +++ b/src/contexts/RelayApi/index.tsx @@ -1,9 +1,9 @@ import { ApiPromise, WsProvider } from '@polkadot/api'; import jsonrpc from '@polkadot/types/interfaces/jsonrpc'; import { DefinitionRpcExt } from '@polkadot/types/types'; -import React, { useContext, useEffect, useReducer } from 'react'; +import React, { useContext, useEffect, useReducer, useState } from 'react'; -import { RELAY_CHAIN_ENDPOINT } from '@/consts'; +import { getRelayChainApiURL } from '@/consts'; import { useToast } from '../Toast'; @@ -11,7 +11,6 @@ import { useToast } from '../Toast'; // Initial state for `useReducer` type State = { - socket: string; jsonrpc: Record>; api: any; apiError: any; @@ -20,7 +19,6 @@ type State = { const initialState: State = { // These are the states - socket: RELAY_CHAIN_ENDPOINT, jsonrpc: { ...jsonrpc }, api: null, apiError: null, @@ -48,10 +46,10 @@ const reducer = (state: any, action: any) => { /// // Connecting to the Substrate node -const connect = (state: any, dispatch: any) => { - const { apiState, socket, jsonrpc } = state; +const connect = (state: any, socket: string, force: boolean, dispatch: any) => { + const { apiState, jsonrpc } = state; // We only want this function to be performed once - if (apiState) return; + if (apiState && !force) return; dispatch({ type: 'CONNECT_INIT' }); @@ -72,11 +70,38 @@ const defaultValue = { state: initialState, }; +type Relay = { + relay: "polkadot" | "kusama", + // eslint-disable-next-line @typescript-eslint/no-unused-vars + setRelay(_value: string): void +} + +const DEFAULT_RELAY = "kusama"; + +const RelayContext = React.createContext( + // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars + { relay: "polkadot", setRelay: (_value: string) => { } } as Relay +); + +const RelayContextProvider = (props: any) => { + const [relay, setRelay]: [relay: "polkadot" | "kusama", setRelay: any] = useState(DEFAULT_RELAY); + + return ( + + {props.children} + + ); +} + +const useRelay = () => useContext(RelayContext); + const RelayApiContext = React.createContext(defaultValue); const RelayApiContextProvider = (props: any) => { const [state, dispatch] = useReducer(reducer, initialState); + const [prevRelay, setPrevRelay] = useState(DEFAULT_RELAY); const { toastError, toastSuccess } = useToast(); + const { relay } = useRelay(); useEffect(() => { state.apiError && @@ -91,8 +116,10 @@ const RelayApiContextProvider = (props: any) => { }, [state.apiState]); useEffect(() => { - connect(state, dispatch); - }, [process.env.RELAY_CHAIN_ENDPOINT]); + const force = prevRelay !== relay; + setPrevRelay(relay); + connect(state, getRelayChainApiURL(relay), force, dispatch); + }, [relay]); return ( @@ -100,6 +127,7 @@ const RelayApiContextProvider = (props: any) => { ); }; + const useRelayApi = () => useContext(RelayApiContext); -export { RelayApiContextProvider, useRelayApi }; +export { RelayApiContextProvider, RelayContextProvider, useRelay, useRelayApi }; diff --git a/src/contracts/addressbook/metadata.json b/src/contracts/addressbook/metadata.json index 099122e..335e5a8 100644 --- a/src/contracts/addressbook/metadata.json +++ b/src/contracts/addressbook/metadata.json @@ -1,6 +1,6 @@ { "source": { - "hash": "0xad61ee4dec538e61854c87b9f4372413d50bbdf7bd4061e2425010aae6ec2f32", + "hash": "0x751ecddf89c63d515069d4b76b6e1c802ea1a4ec548eaf63dd31ef67ceca2a90", "language": "ink! 4.3.0", "compiler": "rustc 1.68.0-nightly", "build_info": { diff --git a/src/contracts/identity/context.tsx b/src/contracts/identity/context.tsx index 4317f71..29a28ef 100644 --- a/src/contracts/identity/context.tsx +++ b/src/contracts/identity/context.tsx @@ -16,7 +16,9 @@ import { useEffect, useState, } from 'react'; +import { Network } from 'types/types-arguments/identity'; +import { useRelay } from '@/contexts/RelayApi'; import { useToast } from '@/contexts/Toast'; import { IdentityMetadata } from '.'; @@ -26,6 +28,8 @@ import { Address, ChainConsts, ChainId, Chains, IdentityNo } from '../types'; interface IdentityContract { identityNo: number | null; chains: Chains; + // These are the chains on both kusama and polkadot. + getAllChains: (_id: number) => Promise>; addresses: Array
; contract: ContractPromise | undefined; fetchIdentityNo: () => Promise; @@ -37,6 +41,9 @@ interface IdentityContract { const defaultIdentity: IdentityContract = { identityNo: null, chains: {}, + getAllChains: async (): Promise> => { + return [] + }, addresses: [], contract: undefined, @@ -67,6 +74,7 @@ const IdentityContractProvider = ({ children }: Props) => { const [loadingIdentityNo, setLoadingIdentityNo] = useState(false); const [loadingChains, setLoadingChains] = useState(false); const { toastError } = useToast(); + const { relay } = useRelay(); const fetchIdentityNo = useCallback(async () => { if (!api || !contract || !activeAccount) { @@ -102,7 +110,7 @@ const IdentityContractProvider = ({ children }: Props) => { const chaindata = new Chaindata(); try { - const chain = await chaindata.getChain(chainId); + const chain = await chaindata.getChain(chainId, relay); if (!chain) { return null; @@ -150,7 +158,8 @@ const IdentityContractProvider = ({ children }: Props) => { '', contract, 'available_chains', - {} + {}, + [relay == "polkadot" ? Network.polkadot : Network.kusama] ); const { output, isError, decodedOutput } = decodeOutput( result, @@ -162,7 +171,7 @@ const IdentityContractProvider = ({ children }: Props) => { const _chains: Chains = {}; for await (const item of output) { - const chainId = parseInt(item[0].replace(/,/g, '')); + const chainId: number = parseInt(item[0].replace(/,/g, '')); const { accountType } = item[1]; const info = await getChainInfo(chainId); if (info) @@ -176,7 +185,7 @@ const IdentityContractProvider = ({ children }: Props) => { toastError(e.toString()); } setLoadingChains(false); - }, [api, contract, toastError]); + }, [api, contract, toastError, relay]); const getAddresses = async (no: number): Promise => { if (!api || !contract) return []; @@ -190,7 +199,9 @@ const IdentityContractProvider = ({ children }: Props) => { 'identity' ); if (isError) throw new Error(decodedOutput); - const records = output.addresses; + const records = output.addresses + .filter((address: any) => address[0][1].toLowerCase() === relay) + .map((address: any) => [address[0][0], address[1]]); const _addresses: Array
= []; for (let idx = 0; idx < records.length; ++idx) { const record = records[idx]; @@ -207,6 +218,32 @@ const IdentityContractProvider = ({ children }: Props) => { } }; + const getAllChains = async (no: number): Promise> => { + if (!api || !contract) return []; + + try { + const result = await contractQuery(api, '', contract, 'identity', {}, [ + no, + ]); + const { output, isError, decodedOutput } = decodeOutput( + result, + contract, + 'identity' + ); + if (isError) throw new Error(decodedOutput); + + return output.addresses.map((record: any) => { + return { + id: record[0][0], + name: record[0][1], + relay: record[0][1].toString().toLowerCase() + } + }); + } catch (e) { + return []; + } + } + const fetchAddresses = useCallback(async () => { if (!api || !contract || identityNo === null) { setAddresses([]); @@ -218,7 +255,7 @@ const IdentityContractProvider = ({ children }: Props) => { } catch { setAddresses([]); } - }, [api, contract, identityNo]); + }, [api, contract, identityNo, relay]); useEffect(() => { void fetchAddresses(); @@ -230,7 +267,7 @@ const IdentityContractProvider = ({ children }: Props) => { useEffect(() => { fetchChains(); - }, [api?.isReady, contract?.address]); + }, [api?.isReady, contract?.address, relay]); return ( { identityNo, addresses, chains, + getAllChains, fetchAddresses, fetchIdentityNo, getAddresses, diff --git a/src/contracts/identity/metadata.json b/src/contracts/identity/metadata.json index 4ebaec0..bcefc22 100644 --- a/src/contracts/identity/metadata.json +++ b/src/contracts/identity/metadata.json @@ -1,8 +1,8 @@ { "source": { - "hash": "0xd34b9b90ae9ab8daf1183bc0ed41e7f8b1f1ae892867ab2b0c8f3dc97a028a3f", + "hash": "0xadae9a54cba29dc70cf8a634dd570472407cecbecb0812178adc0c38caab5894", "language": "ink! 4.3.0", - "compiler": "rustc 1.68.0-nightly", + "compiler": "rustc 1.74.0-nightly", "build_info": { "build_mode": "Debug", "cargo_contract_version": "3.2.0", @@ -33,7 +33,7 @@ "ink_primitives", "ConstructorResult" ], - "type": 8 + "type": 10 }, "selector": "0x9bae9d5e" }, @@ -45,7 +45,7 @@ "displayName": [ "Vec" ], - "type": 11 + "type": 13 } }, { @@ -54,7 +54,7 @@ "displayName": [ "Vec" ], - "type": 7 + "type": 9 } } ], @@ -67,7 +67,7 @@ "ink_primitives", "ConstructorResult" ], - "type": 8 + "type": 10 }, "selector": "0x0935da88" } @@ -78,38 +78,38 @@ "displayName": [ "AccountId" ], - "type": 5 + "type": 7 }, "balance": { "displayName": [ "Balance" ], - "type": 34 + "type": 36 }, "blockNumber": { "displayName": [ "BlockNumber" ], - "type": 2 + "type": 3 }, "chainExtension": { "displayName": [ "ChainExtension" ], - "type": 37 + "type": 39 }, "hash": { "displayName": [ "Hash" ], - "type": 35 + "type": 37 }, "maxEventTopics": 4, "timestamp": { "displayName": [ "Timestamp" ], - "type": 36 + "type": 38 } }, "events": [ @@ -125,7 +125,7 @@ "displayName": [ "AccountId" ], - "type": 5 + "type": 7 } }, { @@ -138,7 +138,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } } ], @@ -159,7 +159,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } }, { @@ -185,7 +185,7 @@ "displayName": [ "EncryptedAddress" ], - "type": 3 + "type": 5 } } ], @@ -204,7 +204,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } }, { @@ -230,7 +230,7 @@ "displayName": [ "EncryptedAddress" ], - "type": 3 + "type": 5 } } ], @@ -249,7 +249,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } }, { @@ -281,7 +281,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } } ], @@ -313,7 +313,7 @@ "displayName": [ "AccountType" ], - "type": 13 + "type": 15 } } ], @@ -345,7 +345,7 @@ "displayName": [ "AccountType" ], - "type": 13 + "type": 15 } } ], @@ -384,7 +384,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } }, { @@ -397,7 +397,7 @@ "displayName": [ "AccountId" ], - "type": 5 + "type": 7 } } ], @@ -410,7 +410,7 @@ "ink", "LangError" ], - "type": 10 + "type": 12 }, "messages": [ { @@ -421,7 +421,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } } ], @@ -438,7 +438,7 @@ "ink", "MessageResult" ], - "type": 14 + "type": 16 }, "selector": "0xcbfefbec" }, @@ -450,7 +450,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } } ], @@ -466,7 +466,7 @@ "ink", "MessageResult" ], - "type": 17 + "type": 19 }, "selector": "0x99720c1e" }, @@ -478,7 +478,7 @@ "displayName": [ "AccountId" ], - "type": 5 + "type": 7 } } ], @@ -494,7 +494,7 @@ "ink", "MessageResult" ], - "type": 19 + "type": 21 }, "selector": "0x713ca232" }, @@ -522,7 +522,7 @@ "ink", "MessageResult" ], - "type": 21 + "type": 23 }, "selector": "0x59d847e9" }, @@ -534,7 +534,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } }, { @@ -560,15 +560,26 @@ "ink", "MessageResult" ], - "type": 23 + "type": 25 }, "selector": "0x525505e4" }, { - "args": [], + "args": [ + { + "label": "network", + "type": { + "displayName": [ + "Network" + ], + "type": 4 + } + } + ], "default": false, "docs": [ - " A list of all the available chains each associated with a `ChainId`." + " A list of all the available chains each associated with the associated", + " `ChainId`." ], "label": "available_chains", "mutates": false, @@ -578,7 +589,7 @@ "ink", "MessageResult" ], - "type": 26 + "type": 28 }, "selector": "0xa5cf243e" }, @@ -598,7 +609,7 @@ "ink", "MessageResult" ], - "type": 29 + "type": 31 }, "selector": "0xfb893664" }, @@ -619,7 +630,7 @@ "displayName": [ "EncryptedAddress" ], - "type": 3 + "type": 5 } } ], @@ -635,7 +646,7 @@ "ink", "MessageResult" ], - "type": 31 + "type": 33 }, "selector": "0x71cc798d" }, @@ -656,7 +667,7 @@ "displayName": [ "EncryptedAddress" ], - "type": 3 + "type": 5 } } ], @@ -672,7 +683,7 @@ "ink", "MessageResult" ], - "type": 31 + "type": 33 }, "selector": "0x892f75e4" }, @@ -700,7 +711,7 @@ "ink", "MessageResult" ], - "type": 31 + "type": 33 }, "selector": "0xdca7a60f" }, @@ -718,7 +729,7 @@ "ink", "MessageResult" ], - "type": 31 + "type": 33 }, "selector": "0x08026740" }, @@ -739,7 +750,7 @@ "displayName": [ "ChainInfo" ], - "type": 12 + "type": 14 } } ], @@ -753,7 +764,7 @@ "ink", "MessageResult" ], - "type": 31 + "type": 33 }, "selector": "0x1cd09676" }, @@ -774,7 +785,7 @@ "displayName": [ "Option" ], - "type": 33 + "type": 35 } } ], @@ -788,7 +799,7 @@ "ink", "MessageResult" ], - "type": 31 + "type": 33 }, "selector": "0x7d5eea00" }, @@ -814,7 +825,7 @@ "ink", "MessageResult" ], - "type": 31 + "type": 33 }, "selector": "0x5b23980f" }, @@ -826,7 +837,7 @@ "displayName": [ "AccountId" ], - "type": 5 + "type": 7 } } ], @@ -845,7 +856,7 @@ "ink", "MessageResult" ], - "type": 31 + "type": 33 }, "selector": "0xd3b93403" }, @@ -857,7 +868,7 @@ "displayName": [ "IdentityNo" ], - "type": 2 + "type": 3 } }, { @@ -866,7 +877,7 @@ "displayName": [ "AccountId" ], - "type": 5 + "type": 7 } } ], @@ -885,7 +896,7 @@ "ink", "MessageResult" ], - "type": 31 + "type": 33 }, "selector": "0x107e33ea" } @@ -926,7 +937,7 @@ "layout": { "leaf": { "key": "0xca45e900", - "ty": 5 + "ty": 7 } }, "root_key": "0xca45e900" @@ -940,7 +951,7 @@ "layout": { "leaf": { "key": "0x7cd66cb1", - "ty": 2 + "ty": 3 } }, "root_key": "0x7cd66cb1" @@ -954,7 +965,7 @@ "layout": { "leaf": { "key": "0x3373bd6d", - "ty": 5 + "ty": 7 } }, "root_key": "0x3373bd6d" @@ -966,7 +977,7 @@ "layout": { "leaf": { "key": "0x00000000", - "ty": 2 + "ty": 3 } }, "name": "latest_identity_no" @@ -1009,7 +1020,7 @@ "layout": { "leaf": { "key": "0x00000000", - "ty": 7 + "ty": 9 } }, "name": "chain_ids" @@ -1018,7 +1029,7 @@ "layout": { "leaf": { "key": "0x00000000", - "ty": 5 + "ty": 7 } }, "name": "admin" @@ -1047,7 +1058,7 @@ "def": { "tuple": [ 2, - 3 + 5 ] } } @@ -1056,22 +1067,57 @@ "id": 2, "type": { "def": { - "primitive": "u32" + "tuple": [ + 3, + 4 + ] } } }, { "id": 3, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "Polkadot" + }, + { + "index": 1, + "name": "Kusama" + } + ] + } + }, + "path": [ + "common", + "types", + "Network" + ] + } + }, + { + "id": 5, "type": { "def": { "sequence": { - "type": 4 + "type": 6 } } } }, { - "id": 4, + "id": 6, "type": { "def": { "primitive": "u8" @@ -1079,13 +1125,13 @@ } }, { - "id": 5, + "id": 7, "type": { "def": { "composite": { "fields": [ { - "type": 6, + "type": 8, "typeName": "[u8; 32]" } ] @@ -1099,18 +1145,18 @@ } }, { - "id": 6, + "id": 8, "type": { "def": { "array": { "len": 32, - "type": 4 + "type": 6 } } } }, { - "id": 7, + "id": 9, "type": { "def": { "sequence": { @@ -1120,7 +1166,7 @@ } }, { - "id": 8, + "id": 10, "type": { "def": { "variant": { @@ -1128,7 +1174,7 @@ { "fields": [ { - "type": 9 + "type": 11 } ], "index": 0, @@ -1137,7 +1183,7 @@ { "fields": [ { - "type": 10 + "type": 12 } ], "index": 1, @@ -1149,11 +1195,11 @@ "params": [ { "name": "T", - "type": 9 + "type": 11 }, { "name": "E", - "type": 10 + "type": 12 } ], "path": [ @@ -1162,7 +1208,7 @@ } }, { - "id": 9, + "id": 11, "type": { "def": { "tuple": [] @@ -1170,7 +1216,7 @@ } }, { - "id": 10, + "id": 12, "type": { "def": { "variant": { @@ -1189,24 +1235,24 @@ } }, { - "id": 11, + "id": 13, "type": { "def": { "sequence": { - "type": 12 + "type": 14 } } } }, { - "id": 12, + "id": 14, "type": { "def": { "composite": { "fields": [ { "name": "account_type", - "type": 13, + "type": 15, "typeName": "AccountType" } ] @@ -1220,7 +1266,7 @@ } }, { - "id": 13, + "id": 15, "type": { "def": { "variant": { @@ -1244,7 +1290,7 @@ } }, { - "id": 14, + "id": 16, "type": { "def": { "variant": { @@ -1252,7 +1298,7 @@ { "fields": [ { - "type": 15 + "type": 17 } ], "index": 0, @@ -1261,7 +1307,7 @@ { "fields": [ { - "type": 10 + "type": 12 } ], "index": 1, @@ -1273,11 +1319,11 @@ "params": [ { "name": "T", - "type": 15 + "type": 17 }, { "name": "E", - "type": 10 + "type": 12 } ], "path": [ @@ -1286,7 +1332,7 @@ } }, { - "id": 15, + "id": 17, "type": { "def": { "variant": { @@ -1298,7 +1344,7 @@ { "fields": [ { - "type": 16 + "type": 18 } ], "index": 1, @@ -1310,7 +1356,7 @@ "params": [ { "name": "T", - "type": 16 + "type": 18 } ], "path": [ @@ -1319,7 +1365,7 @@ } }, { - "id": 16, + "id": 18, "type": { "def": { "composite": { @@ -1340,7 +1386,7 @@ } }, { - "id": 17, + "id": 19, "type": { "def": { "variant": { @@ -1348,7 +1394,7 @@ { "fields": [ { - "type": 18 + "type": 20 } ], "index": 0, @@ -1357,7 +1403,7 @@ { "fields": [ { - "type": 10 + "type": 12 } ], "index": 1, @@ -1369,11 +1415,11 @@ "params": [ { "name": "T", - "type": 18 + "type": 20 }, { "name": "E", - "type": 10 + "type": 12 } ], "path": [ @@ -1382,7 +1428,7 @@ } }, { - "id": 18, + "id": 20, "type": { "def": { "variant": { @@ -1394,7 +1440,7 @@ { "fields": [ { - "type": 5 + "type": 7 } ], "index": 1, @@ -1406,7 +1452,7 @@ "params": [ { "name": "T", - "type": 5 + "type": 7 } ], "path": [ @@ -1415,7 +1461,7 @@ } }, { - "id": 19, + "id": 21, "type": { "def": { "variant": { @@ -1423,7 +1469,7 @@ { "fields": [ { - "type": 20 + "type": 22 } ], "index": 0, @@ -1432,7 +1478,7 @@ { "fields": [ { - "type": 10 + "type": 12 } ], "index": 1, @@ -1444,11 +1490,11 @@ "params": [ { "name": "T", - "type": 20 + "type": 22 }, { "name": "E", - "type": 10 + "type": 12 } ], "path": [ @@ -1457,7 +1503,7 @@ } }, { - "id": 20, + "id": 22, "type": { "def": { "variant": { @@ -1469,7 +1515,7 @@ { "fields": [ { - "type": 2 + "type": 3 } ], "index": 1, @@ -1481,7 +1527,7 @@ "params": [ { "name": "T", - "type": 2 + "type": 3 } ], "path": [ @@ -1490,7 +1536,7 @@ } }, { - "id": 21, + "id": 23, "type": { "def": { "variant": { @@ -1498,7 +1544,7 @@ { "fields": [ { - "type": 22 + "type": 24 } ], "index": 0, @@ -1507,7 +1553,7 @@ { "fields": [ { - "type": 10 + "type": 12 } ], "index": 1, @@ -1519,11 +1565,11 @@ "params": [ { "name": "T", - "type": 22 + "type": 24 }, { "name": "E", - "type": 10 + "type": 12 } ], "path": [ @@ -1532,7 +1578,7 @@ } }, { - "id": 22, + "id": 24, "type": { "def": { "variant": { @@ -1544,7 +1590,7 @@ { "fields": [ { - "type": 12 + "type": 14 } ], "index": 1, @@ -1556,7 +1602,7 @@ "params": [ { "name": "T", - "type": 12 + "type": 14 } ], "path": [ @@ -1565,7 +1611,7 @@ } }, { - "id": 23, + "id": 25, "type": { "def": { "variant": { @@ -1573,7 +1619,7 @@ { "fields": [ { - "type": 24 + "type": 26 } ], "index": 0, @@ -1582,7 +1628,7 @@ { "fields": [ { - "type": 10 + "type": 12 } ], "index": 1, @@ -1594,11 +1640,11 @@ "params": [ { "name": "T", - "type": 24 + "type": 26 }, { "name": "E", - "type": 10 + "type": 12 } ], "path": [ @@ -1607,7 +1653,7 @@ } }, { - "id": 24, + "id": 26, "type": { "def": { "variant": { @@ -1615,7 +1661,7 @@ { "fields": [ { - "type": 3 + "type": 5 } ], "index": 0, @@ -1624,7 +1670,7 @@ { "fields": [ { - "type": 25 + "type": 27 } ], "index": 1, @@ -1636,11 +1682,11 @@ "params": [ { "name": "T", - "type": 3 + "type": 5 }, { "name": "E", - "type": 25 + "type": 27 } ], "path": [ @@ -1649,7 +1695,7 @@ } }, { - "id": 25, + "id": 27, "type": { "def": { "variant": { @@ -1692,7 +1738,7 @@ } }, { - "id": 26, + "id": 28, "type": { "def": { "variant": { @@ -1700,7 +1746,7 @@ { "fields": [ { - "type": 27 + "type": 29 } ], "index": 0, @@ -1709,7 +1755,7 @@ { "fields": [ { - "type": 10 + "type": 12 } ], "index": 1, @@ -1721,11 +1767,11 @@ "params": [ { "name": "T", - "type": 27 + "type": 29 }, { "name": "E", - "type": 10 + "type": 12 } ], "path": [ @@ -1734,28 +1780,28 @@ } }, { - "id": 27, + "id": 29, "type": { "def": { "sequence": { - "type": 28 + "type": 30 } } } }, { - "id": 28, + "id": 30, "type": { "def": { "tuple": [ - 2, - 12 + 3, + 14 ] } } }, { - "id": 29, + "id": 31, "type": { "def": { "variant": { @@ -1763,7 +1809,7 @@ { "fields": [ { - "type": 30 + "type": 32 } ], "index": 0, @@ -1772,7 +1818,7 @@ { "fields": [ { - "type": 10 + "type": 12 } ], "index": 1, @@ -1784,11 +1830,11 @@ "params": [ { "name": "T", - "type": 30 + "type": 32 }, { "name": "E", - "type": 10 + "type": 12 } ], "path": [ @@ -1797,7 +1843,7 @@ } }, { - "id": 30, + "id": 32, "type": { "def": { "variant": { @@ -1805,7 +1851,7 @@ { "fields": [ { - "type": 2 + "type": 3 } ], "index": 0, @@ -1814,7 +1860,7 @@ { "fields": [ { - "type": 25 + "type": 27 } ], "index": 1, @@ -1826,11 +1872,11 @@ "params": [ { "name": "T", - "type": 2 + "type": 3 }, { "name": "E", - "type": 25 + "type": 27 } ], "path": [ @@ -1839,7 +1885,7 @@ } }, { - "id": 31, + "id": 33, "type": { "def": { "variant": { @@ -1847,7 +1893,7 @@ { "fields": [ { - "type": 32 + "type": 34 } ], "index": 0, @@ -1856,7 +1902,7 @@ { "fields": [ { - "type": 10 + "type": 12 } ], "index": 1, @@ -1868,11 +1914,11 @@ "params": [ { "name": "T", - "type": 32 + "type": 34 }, { "name": "E", - "type": 10 + "type": 12 } ], "path": [ @@ -1881,7 +1927,7 @@ } }, { - "id": 32, + "id": 34, "type": { "def": { "variant": { @@ -1889,7 +1935,7 @@ { "fields": [ { - "type": 9 + "type": 11 } ], "index": 0, @@ -1898,7 +1944,7 @@ { "fields": [ { - "type": 25 + "type": 27 } ], "index": 1, @@ -1910,11 +1956,11 @@ "params": [ { "name": "T", - "type": 9 + "type": 11 }, { "name": "E", - "type": 25 + "type": 27 } ], "path": [ @@ -1923,7 +1969,7 @@ } }, { - "id": 33, + "id": 35, "type": { "def": { "variant": { @@ -1935,7 +1981,7 @@ { "fields": [ { - "type": 13 + "type": 15 } ], "index": 1, @@ -1947,7 +1993,7 @@ "params": [ { "name": "T", - "type": 13 + "type": 15 } ], "path": [ @@ -1956,7 +2002,7 @@ } }, { - "id": 34, + "id": 36, "type": { "def": { "primitive": "u128" @@ -1964,13 +2010,13 @@ } }, { - "id": 35, + "id": 37, "type": { "def": { "composite": { "fields": [ { - "type": 6, + "type": 8, "typeName": "[u8; 32]" } ] @@ -1984,7 +2030,7 @@ } }, { - "id": 36, + "id": 38, "type": { "def": { "primitive": "u64" @@ -1992,7 +2038,7 @@ } }, { - "id": 37, + "id": 39, "type": { "def": { "variant": {} diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 2664910..3edc55f 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -14,7 +14,7 @@ import theme from '@/utils/muiTheme'; import { Layout } from '@/components/Layout'; -import { RelayApiContextProvider } from '@/contexts/RelayApi'; +import { RelayApiContextProvider, RelayContextProvider } from '@/contexts/RelayApi'; import { ToastProvider } from '@/contexts/Toast'; import { IdentityContractProvider } from '@/contracts'; import { AddressBookContractProvider } from '@/contracts/addressbook/context'; @@ -31,7 +31,9 @@ interface MyAppProps extends AppProps { export default function MyApp(props: MyAppProps) { const { Component, emotionCache = clientSideEmotionCache, pageProps } = props; - const getLayout = Component.getLayout ?? ((page) => {page}); + const getLayout = Component.getLayout ?? ((page) => + {page} + ); return ( @@ -43,29 +45,31 @@ export default function MyApp(props: MyAppProps) { {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */} - - - - - - {getLayout()} - - - - - + + + + + + + {getLayout()} + + + + + + diff --git a/src/pages/transfer.tsx b/src/pages/transfer.tsx index b8aa448..b65b84c 100644 --- a/src/pages/transfer.tsx +++ b/src/pages/transfer.tsx @@ -29,8 +29,8 @@ import TransactionRouter, { isTeleport } from '@/utils/xcmTransfer'; import { getTeleportableAssets } from '@/utils/xcmTransfer/teleportableRoutes'; import { Fungible } from '@/utils/xcmTransfer/types'; -import { chainsSupportingXcmExecute, RELAY_CHAIN } from '@/consts'; -import { useRelayApi } from '@/contexts/RelayApi'; +import { chainsSupportingXcmExecute } from '@/consts'; +import { useRelay, useRelayApi } from '@/contexts/RelayApi'; import { useToast } from '@/contexts/Toast'; import { useIdentity } from '@/contracts'; import { useAddressBook } from '@/contracts/addressbook/context'; @@ -61,6 +61,8 @@ const TransferPage = () => { const [amount, setAmount] = useState(); const [transferring, setTransferring] = useState(false); + const { relay } = useRelay(); + const chainsSelected = !loadingAssets && sourceChainId !== undefined && destChainId !== undefined; const assetSelected = chainsSelected && Boolean(selectedAsset); @@ -91,22 +93,21 @@ const TransferPage = () => { setAssets([]); } else { const _assets = await AssetRegistry.assetsSupportedOnBothChains( - RELAY_CHAIN, + relay, chains[sourceChainId].paraId, chains[destChainId].paraId ); - _assets.push(...getTeleportableAssets(sourceChainId, destChainId)); + _assets.push(...getTeleportableAssets(sourceChainId, destChainId, relay)); setAssets(_assets); } } else { const chaindata = new Chaindata(); - const chain = await chaindata.getChain(sourceChainId); - - await chaindata.load(); + const chain = await chaindata.getChain(sourceChainId, relay); const _assets = []; if (chain) { - const tokens = chaindata.getTokens().filter((token) => { + const allTokens = (await chaindata.getTokens((chain.id === "kusama" || chain.id === "polkadot") ? null : relay)); + const tokens = allTokens.filter((token) => { const prefix = `${chain.id}-${token.data.type}`; const isPartOfSourceChain = token.data.id.startsWith(prefix); return isPartOfSourceChain; @@ -133,7 +134,7 @@ const TransferPage = () => { } setLoadingAssets(false); - }, [sourceChainId, destChainId, relayApi]); + }, [sourceChainId, destChainId, chains]); useEffect(() => { loadAssets(); @@ -155,11 +156,12 @@ const TransferPage = () => { const recepientIdentityNo = identities[recipientId].identityNo; const identityKey = KeyStore.readIdentityKey(recepientIdentityNo) || ''; const destAddressRaw = addresses[index].address; - if (IdentityKey.containsChainId(identityKey, destChainId)) { + if (IdentityKey.containsChainId(identityKey, destChainId, relay)) { const decryptedAddress = IdentityKey.decryptAddress( identityKey, destChainId, - destAddressRaw + destAddressRaw, + relay, ); setRecipientAddress(decryptedAddress); } else { @@ -204,7 +206,8 @@ const TransferPage = () => { isTeleport( sourceChainId, destChainId, - getFungible(selectedAsset.xcmInteriorKey, isSourceParachain, 0) + getFungible(selectedAsset.xcmInteriorKey, isSourceParachain, 0), + relay ) ) { return true; @@ -212,7 +215,7 @@ const TransferPage = () => { const isOriginSupportingLocalXCM = chainsSupportingXcmExecute.findIndex( (chain) => - chain.paraId == sourceChainId && chain.relayChain == RELAY_CHAIN + chain.paraId == sourceChainId && chain.relayChain == relay ); // We only need the origin chain to support XCM for any other type of transfer to @@ -322,6 +325,7 @@ const TransferPage = () => { destApi: await getApi(chains[destChainId].rpc), reserveApi: await getApi(chains[reserveChainId].rpc), }, + relay, activeSigner ); toastSuccess(`Transfer succeded`); @@ -464,7 +468,7 @@ const TransferPage = () => { {identities.filter( (identity) => IdentityKey.containsChainId( - KeyStore.readIdentityKey(identity.identityNo) || '', destChainId + KeyStore.readIdentityKey(identity.identityNo) || '', destChainId, relay )).map((identity, index) => ( {identity.nickName} diff --git a/src/utils/identityKey.ts b/src/utils/identityKey.ts index 8ef3585..3482b98 100644 --- a/src/utils/identityKey.ts +++ b/src/utils/identityKey.ts @@ -42,36 +42,34 @@ class IdentityKey { return result; } - public static newCipher(identityKey: string, chainId: number): string { - const regexPattern = new RegExp(`\\b${chainId}:`, "g"); + public static newCipher(identityKey: string, chainId: number, relay: string): string { + const regexPattern = new RegExp(`\\b${relay}${chainId}:`, "g"); if (regexPattern.test(identityKey)) { throw new Error("There already exists a cipher that is attached to the provided chainId"); } const cipher = this.generateCipher(); - identityKey += `${chainId}:${cipher};`; + identityKey += `${relay}${chainId}:${cipher};`; return identityKey; } - public static updateCipher(identityKey: string, chainId: number): string { - const startIndex = identityKey.indexOf(`${chainId}:`); + public static updateCipher(identityKey: string, chainId: number, relay: string): string { + const startIndex = identityKey.indexOf(`${relay}${chainId}:`); + const chainIdAndNetwork = `${relay}${chainId}`; if (startIndex >= 0) { const newCipher = this.generateCipher(); - const endIndex = identityKey.indexOf(";", startIndex); - identityKey = - identityKey.substring(0, startIndex + chainId.toString().length + 1) + newCipher + identityKey.substring(endIndex); + + return identityKey.substring(0, startIndex + chainIdAndNetwork.toString().length + 1) + newCipher + identityKey.substring(endIndex); } else { - throw new Error("Cannot find chainId"); + return this.newCipher(identityKey, chainId, relay); } - - return identityKey; } - public static encryptAddress(identityKey: string, chainId: number, address: string): string { - const cipher = this.getChainCipher(identityKey, chainId); + public static encryptAddress(identityKey: string, chainId: number, address: string, relay: string): string { + const cipher = this.getChainCipher(identityKey, chainId, relay); const cipherBase64 = Buffer.from(cipher, "base64"); const aesCtr = new aesjs.ModeOfOperation.ctr(cipherBase64); @@ -80,8 +78,8 @@ class IdentityKey { return Buffer.from(encryptedAddress).toString("base64"); } - public static decryptAddress(identityKey: string, chainId: number, address: string): string { - const cipher = this.getChainCipher(identityKey, chainId); + public static decryptAddress(identityKey: string, chainId: number, address: string, relay: string): string { + const cipher = this.getChainCipher(identityKey, chainId, relay); const cipherBase64 = Buffer.from(cipher, "base64"); const aesCtr = new aesjs.ModeOfOperation.ctr(cipherBase64); @@ -90,36 +88,38 @@ class IdentityKey { return Buffer.from(decryptedAddress.buffer).toString(); } - public static getChainCipher(identityKey: string, chainId: number): string { - const startIndex = identityKey.indexOf(`${chainId}:`); + public static getChainCipher(identityKey: string, chainId: number, relay: string): string { + const startIndex = identityKey.indexOf(`${relay}${chainId}:`); + const chainIdAndNetwork = `${relay}${chainId}`; if (startIndex >= 0) { const endIndex = identityKey.indexOf(";", startIndex); - return identityKey.substring(startIndex + chainId.toString().length + 1, endIndex); + return identityKey.substring(startIndex + chainIdAndNetwork.toString().length + 1, endIndex); } else { throw new Error("Cannot find chainId"); } } - public static getSharedKey(identityKey: string, selectedChains: number[]): string { + public static getSharedKey(identityKey: string, selectedChains: { chainId: number, relay: string }[]): string { let key = JSON.parse(JSON.stringify(identityKey)); let sharedKey = ""; - selectedChains.forEach((chainId) => { - if (!IdentityKey.containsChainId(key, chainId)) { - key = IdentityKey.newCipher(key, chainId); - throw new Error(`Cipher for chain #${chainId} not found`); + selectedChains.forEach((chain) => { + if (!IdentityKey.containsChainId(key, chain.chainId, chain.relay)) { + key = IdentityKey.newCipher(key, chain.chainId, chain.relay); + throw new Error(`Cipher for chain #${chain.relay}${chain.chainId} not found`); } - sharedKey += `${chainId}:${IdentityKey.getChainCipher( + sharedKey += `${chain.relay}${chain.chainId}:${IdentityKey.getChainCipher( key, - chainId + chain.chainId, + chain.relay )};`; }); return sharedKey; } - public static containsChainId(identityKey: string, chainId: number): boolean { - const startIndex = identityKey.indexOf(`${chainId}:`); + public static containsChainId(identityKey: string, chainId: number, relay: string): boolean { + const startIndex = identityKey.indexOf(`${relay}${chainId}:`); return startIndex >= 0 ? true : false; } diff --git a/src/utils/xcmTransfer/index.ts b/src/utils/xcmTransfer/index.ts index e9e4fb7..b05430f 100644 --- a/src/utils/xcmTransfer/index.ts +++ b/src/utils/xcmTransfer/index.ts @@ -36,6 +36,7 @@ class TransactionRouter { reserveChainId: number, asset: Fungible, transferRpcApis: TransferRpcApis, + relay: "polkadot" | "kusama", signer?: Signer, ): Promise { if (sender.chain === receiver.chain && sender.keypair.addressRaw === receiver.addressRaw) { @@ -60,7 +61,7 @@ class TransactionRouter { const originParaId = sender.chain; const destParaId = receiver.chain; - if (isTeleport(originParaId, destParaId, asset)) { + if (isTeleport(originParaId, destParaId, asset, relay)) { // The asset is allowed to be teleported between the origin and the destination. await TeleportTransfer.send( transferRpcApis.originApi, @@ -211,9 +212,7 @@ const ensureContainsXcmPallet = (api: ApiPromise) => { } // Returns whether the transfer is a teleport. -export const isTeleport = (originParaId: number, destParaId: number, asset: Fungible): boolean => { - const relayChain = process.env.RELAY_CHAIN ? process.env.RELAY_CHAIN : "rococo"; - +export const isTeleport = (originParaId: number, destParaId: number, asset: Fungible, relayChain: "polkadot" | "kusama"): boolean => { return teleportableRoutes.some(route => { return relayChain === route.relayChain && originParaId === route.originParaId && diff --git a/src/utils/xcmTransfer/teleportableRoutes.ts b/src/utils/xcmTransfer/teleportableRoutes.ts index 4aa87d3..7f2b611 100644 --- a/src/utils/xcmTransfer/teleportableRoutes.ts +++ b/src/utils/xcmTransfer/teleportableRoutes.ts @@ -2,7 +2,6 @@ // teleportation. import AssetRegistry, { Asset } from "../assetRegistry"; -import { RELAY_CHAIN } from "../../consts"; export type TeleportableRoute = { relayChain: string, @@ -135,11 +134,11 @@ export const teleportableRoutes: TeleportableRoute[] = [ } ]; -export const getTeleportableAssets = (originChainId: number, destChainId: number): Asset[] => { +export const getTeleportableAssets = (originChainId: number, destChainId: number, relay: "polkadot" | "kusama"): Asset[] => { const routes = teleportableRoutes.filter( (route) => route.originParaId === originChainId && route.destParaId === destChainId - && route.relayChain === RELAY_CHAIN + && route.relayChain === relay ); return routes.map((route) => route.asset); diff --git a/types/build-extrinsic/identity.ts b/types/build-extrinsic/identity.ts index 9d9f41a..fbe0f60 100644 --- a/types/build-extrinsic/identity.ts +++ b/types/build-extrinsic/identity.ts @@ -59,10 +59,10 @@ export default class Methods { /** * chainInfoOf * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, */ "chainInfoOf" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], __options: GasLimit, ){ return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "chainInfoOf", [chainId], __options); @@ -72,11 +72,11 @@ export default class Methods { * transactionDestination * * @param { (number | string | BN) } receiver, - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, */ "transactionDestination" ( receiver: (number | string | BN), - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], __options: GasLimit, ){ return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "transactionDestination", [receiver, chain], __options); @@ -85,11 +85,13 @@ export default class Methods { /** * availableChains * + * @param { ArgumentTypes.Network } network, */ "availableChains" ( + network: ArgumentTypes.Network, __options: GasLimit, ){ - return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "availableChains", [], __options); + return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "availableChains", [network], __options); } /** @@ -105,11 +107,11 @@ export default class Methods { /** * addAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @param { Array<(number | string | BN)> } address, */ "addAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], address: Array<(number | string | BN)>, __options: GasLimit, ){ @@ -119,11 +121,11 @@ export default class Methods { /** * updateAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @param { Array<(number | string | BN)> } address, */ "updateAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], address: Array<(number | string | BN)>, __options: GasLimit, ){ @@ -133,10 +135,10 @@ export default class Methods { /** * removeAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, */ "removeAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], __options: GasLimit, ){ return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "removeAddress", [chain], __options); @@ -155,11 +157,11 @@ export default class Methods { /** * addChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @param { ArgumentTypes.ChainInfo } info, */ "addChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], info: ArgumentTypes.ChainInfo, __options: GasLimit, ){ @@ -169,11 +171,11 @@ export default class Methods { /** * updateChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @param { ArgumentTypes.AccountType | null } newAddressType, */ "updateChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], newAddressType: ArgumentTypes.AccountType | null, __options: GasLimit, ){ @@ -183,10 +185,10 @@ export default class Methods { /** * removeChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, */ "removeChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], __options: GasLimit, ){ return buildSubmittableExtrinsic( this.__apiPromise, this.__nativeContract, "removeChain", [chainId], __options); diff --git a/types/constructors/identity.ts b/types/constructors/identity.ts index 4207875..8418674 100644 --- a/types/constructors/identity.ts +++ b/types/constructors/identity.ts @@ -52,11 +52,11 @@ export default class Constructors { * initWithChains * * @param { Array } chains, - * @param { Array<(number | string | BN)> } chainIds, + * @param { Array<[(number | string | BN), ArgumentTypes.Network]> } chainIds, */ async "initWithChains" ( chains: Array, - chainIds: Array<(number | string | BN)>, + chainIds: Array<[(number | string | BN), ArgumentTypes.Network]>, __options ? : ConstructorOptions, ) { const __contract = JSON.parse(ContractFile); diff --git a/types/contract-info/address_book.ts b/types/contract-info/address_book.ts index 49e5b5b..f91d559 100644 --- a/types/contract-info/address_book.ts +++ b/types/contract-info/address_book.ts @@ -1,2 +1,2 @@ -export const ContractAbi = `{"source":{"hash":"0xad61ee4dec538e61854c87b9f4372413d50bbdf7bd4061e2425010aae6ec2f32","language":"ink! 4.3.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NicknameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"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":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":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"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":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":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; -export const ContractFile = `{"source":{"hash":"0xad61ee4dec538e61854c87b9f4372413d50bbdf7bd4061e2425010aae6ec2f32","language":"ink! 4.3.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000015a0e60037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060047f7f7f7f0060057f7f7f7f7f0060017f0060047f7f7f7f017f60000060017f017e60087f7f7e7f7f7f7f7f017f6000017f60017f017f60067f7f7f7f7f7f0002ea010c057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640001057365616c310463616c6c000a057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740004057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650002057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100362610001010100050004030503010101030101010201030301010303030501010601010106050b0c0306020308060403010603030101080601080208020000030202040103020602090504020205070407050202030000050407040202020204040d04040501700111110608017f01418080040b0711020463616c6c0042066465706c6f7900440916010041010b101d5c5b33434e675064654f47494a66510ac9ab01612b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6e01027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a000020002802002100200341086a200120024101418c8104101020002003280208200328020c10110c010b20002802002001200210110b2100200341106a240020000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6001047f230041106b22032400200028020422042002492205450440200341086a41002002200028020022061069200120022003280208200328020c419cb204102620032002200420061069200020032903003702000b200341106a240020050b1400200020012002200341ccab0441808004106a0b5001017f230041206b220324002003410c6a4101360200200341146a410036020020034184ac04360210200341003602002003200136021c200320003602182003200341186a36020820032002101e000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0e0020002001200241ec9b04106b0bf00401067f23004190016b22022400200241346a200141186a2900003702002002412c6a200141106a290000370200200241246a200141086a290000370200200241bc81043602182002200129000037021c2002410036024820024280800137027c200241f0b20436027841eee7a015200241f8006a22051017200241186a4104722005101820022002290378370340200241106a200241406b2002280280011019200228021421032002280210210620022802402101200220022802442207360278200620032001200510002103200241086a20022802782001200741d486041014024002400240410c20032003410c4f1b0e0400020201020b200228020c210120022002280208360250200220013602542002200241d0006a100c024020022802000d00200241d8006a2002280254410476220320022802042201200120034b1b101a20010440200241f8006a41047221030340200241f8006a200241d0006a101b20022802780d02200241f0006a200341086a29020037030020022003290200370368200241d8006a200241e8006a101c200141016b22010d000b0b200228025c2204450d0020022802602101200228025821030c010b200241003a005820024184016a41013602002002418c016a4101360200200241e0810436028001200241003602782002410136026c2002200241e8006a360288012002200241d8006a360268200241f8006a41d08204101e000b20002001360208200020043602042000200336020020024190016a24000f0b20024184016a41013602002002418c016a4100360200200241e487043602800120024184ac043602880120024100360278200241f8006a41ec8704101e000b2601017f230041106b220224002002200036020c20012002410c6a41041024200241106a24000b0a0020012000412010240b4501017f2002200128020422034b044041acac04412341a0ae041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b800201047f02400240024002402001450440410421020c010b200141ffffff3f4b22020d01200141047422054100480d012005200141808080c000494102746a41016b4100417c20021b7122042005490d0241e8b204280200220220046a22032002490d0341ecb2042802002003490440200441ffff036a22022004490d042002411076220340002202417f46200241ffff0371200247720d042002411074220220034110746a22032002490d0441ecb2042003360200200220046a22032002490d040b41e8b20420033602002002450d030b2000410036020820002002360204200020013602000f0b1035000b41b0ab04411c4194ab041013000b20051036000bbc06010a7f230041206b22042400200441186a2001100e41012102024020042802180d00200428021c210a200441106a2001100d20042d00104101710d000240024020042d00110e020100020b200441086a2001100c20042802080d01200428020c220320012802044b0d0120042003102c2004280200210b200120042802042205200310110d012003450d00200341076b22014100200120034d1b2109200541036a417c7120056b2106410021020340024002400240024002400240024002400240200220056a2d00002207411874411875220841004e0440200620026b4103712006417f46720d0220022009490d010c060b02400240200741a4a4046a2d000041026b0e03040100060b200241016a220120034f0d05200120056a2c000021010240024002400240200741f0016b0e050100000002000b2008410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120056a2c000041bf7f4a0d05200241036a220120034f0d05200120056a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120056a2c00002101024002400240200741e001470440200741ed01460d012008411f6a41ff0171410c490d022008417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120056a2c000041bf7f4c0d030c040b0340200220056a2201280200200141046a28020072418081828478710d052002200241086a22014d044020012102200120094f0d070c010b0b41f09304411c4194a4041013000b200241016a21020c050b200241016a220120034f0d01200120056a2c000041bf7f4a0d010b200141016a21020c030b410121020c060b200221010b200120034f0d0120012003200120034b1b21020340200120056a2c00004100480440200121020c020b200141016a22012002470d000b0c010b20022003490d010b0b200321060b2000200a360204200041106a20063602002000410c6a2005360200200041086a200b360200410021020b20002002360200200441206a24000bb80201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d0002402000280200220320036a220520034f044041042005200420042005491b2204200441044d1b22044104742105200441808080c0004941027421060240200304402002200028020436021020024104360218200220034104743602140c010b200241003602180b200220052006200241106a10372002280200450d01200241086a280200450d0220022802041036000b41f08304412141d48e041013000b200228020421032000200436020020002003360204200241206a24000c010b1035000b200028020821030b200028020420034104746a22022001290200370200200241086a200141086a290200370200200341016a220145044041a08104411c41d093041013000b200020013602080bb60401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280200220341dfaf0441062001280204220528020c22041100000d0c024020012d0018410471450440200341dc9504410120041100000d0e200341acb20441052004110000450d010c0e0b200341da9504410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241acb2044105105f0d0d200241d895044102105f0d0d0b200341b194044101200411000021000c0c0b200128020041d2af04410d200128020428020c11000021000c0b0b200128020041c4af04410e200128020428020c11000021000c0a0b200128020041b9af04410b200128020428020c11000021000c090b2001280200419faf04411a200128020428020c11000021000c080b20012802004191af04410e200128020428020c11000021000c070b20012802004181af044110200128020428020c11000021000c060b200128020041f5ae04410c200128020428020c11000021000c050b200128020041eaae04410b200128020428020c11000021000c040b200128020041e3ae044107200128020428020c11000021000c030b200128020041d4ae04410f200128020428020c11000021000c020b200128020041c3ae044111200128020428020c11000021000c010b200128020041b0ae044113200128020428020c11000021000b200241106a240020000be10201017f230041206b22022400200241013a0018200220013602142002200036021020024190950436020c20024184ac04360208230041406a220124002001200241086a36020c2001410736022420012001410c6a360220410021004104210202400240024002400240034020002000200241d0ac046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b103920014100360218200120012903003703102001410136023c20014102360234200141d0ac04360230200141003602282001200141206a360238200141106a200141286a10450d0141f0b2052d000045044041f1b2052d00004101710d050b410c20012802142001280218100522002000410c4f1b4109470d020c030b41808d04411c41f0a8041013000b41d090044133200141286a41c48d0441809204102e000b41f0b20541013a00000b41f1b20541013a00000b000b800202047f017e230041e0006b22032400200341346a200041186a2900003702002003412c6a200041106a290000370200200341246a200041086a290000370200200341bc81043602182003200029000037021c20034100360248200342808001370254200341f0b20436025041eee7a015200341d0006a22041017200341186a4104722004101820032003290350370340200341106a200341406b2205200328025810192003280214210020032802102106200329034021072003410036025820032007370350200120022004102020032003290350370340200341086a200520032802581019200620002003280208200328020c10081a200341e0006a24000b430020012002102820010440200020014104746a21010340200028020020021017200041086a2802002000410c6a28020020021034200041106a22002001470d000b0b0bdc0102037f017e230041d0006b22022400200241106a22042000102220022903102105200241003602282002200537032020012802002001280204200241206a2203102320032001280208411c102420022002290320370310200241086a20042002280228101920032002280208200228020c102520022000280200220420002802042000280208220141fc8704101020024100360248200220022903003703402003200241406b10182001200120022802486a22034b044041a08104411c418c88041013000b2000200436020020002003360208200241d0006a24000b5201037f230041106b2202240020012802082203200128020422044b0440200320044190ae041031000b200241086a20032004200128020010682000200229030837020020004100360208200241106a24000b100020012002102820022000200110240b7901047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a20052004200028020010682003280208200328020c2001200241f0ad04102620002004360208200341106a24000f0b4190ac04411c41d0ad041013000b2004200641e0ad041015000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1006200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a20022000412041d0830410142003280208200328020c2001200241e0830410260b200341306a24000b85010020012003460440200020022001100b1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4106360200200041f09e0436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a2004101e000b7701037f230041206b22022400200241086a2000280200220420002802042000280208220341fc8704101020024100360218200220022903083703102001200241106a10282003200320022802186a22014b044041a08104411c418c88041013000b2000200436020020002001360208200241206a24000b7401017f230041106b2202240002402000413f4d044020012000410274102a0c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210240c010b200041ffffffff034d04402000410274410272200110170c010b20014103102a2000200110170b200241106a24000b080020004101102a0ba10101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a41023602002000411c6a41023602002000412c6a4106360200200041e4940436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a4180ae04101e000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76104d200228020822030d0120011036000b1035000b2000200336020420002001360200200241106a24000ba70101017f230041306b2201240020014180800136020041f0b2042001100420014180800136022c200141f0b2043602282001200141286a102b20012d00000440200141003a000041e4860441c10020014194840441a88704102e000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541c4950436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101e000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b1b002000418180014f044020004180800141b887041015000b20000b0e0020002001200241cc9b04106b0b5201017f230041206b220124002001410c6a4101360200200141146a410136020020014190a904360208200141003602002001410436021c200120003602182001200141186a360210200141808c04101e000b950101017f230041306b22022400200241146a41013602002002411c6a410136020020024190a9043602102002410036020820024103360224200220002d0000410274220041c0b2046a28020036022c2002200041d4b2046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a105e2100200241306a240020000b1d00200045044020024100102a0f0b20024101102a20002001200210230b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041f88e0436021020004184ac0436021820004100360208200041086a41808f04101e000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141b09004360218200141003602102001410636022c2001200141286a36022020012001410c6a360228200141106a41c09004101e000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002104d2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002104d20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141e8b204280200220620086a22072006490d031a2003280200210a41ecb2042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d0341ecb20420033602002001200620086a22072006490d041a0b41e8b204200736020020012006450d031a2006200a2009100b210420010c030b20002001360204200041086a41003602000c030b41b0ab04411c4194ab041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b5901037f230041106b2203240002402001450440200041003602040c010b200341086a20021039200328020821042000200328020c220536020420002004360200200520012002100b1a200020023602080b200341106a24000b3501017f230041106b22022400200241086a2001102c200228020c21012000200228020836020020002001360204200241106a24000bfc0902047f017e230041b0016b22012400200141186a20004134100b1a024002400240024002400240024020012d001841016b0e0401020304000b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a2203418c8904103b2001200141186a4101723602a801200141263602a4012001419889043602a00120014190016a220220002003103c20002002103d0c040b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a220341e08904103b2001200141186a4101723602a801200141263602a401200141ec89043602a00120014190016a220220002003103c20002002103d0c030b200142808001370274200141f0b204360270200141f0006a220241021027200141e8006a2200200141f8006a2802003602002001200129037037036020014190016a2203200141e0006a1022200129039001210520014100360278200120053703704184ac04410020021023200241928a04411a10242001200129037037039001200141106a2003200128027810192002200128021020012802141025200141086a2001280260220320012802642000280200220041fc87041010200141003602a801200120012903083703a0012002200141a0016a10182000200020012802a8016a22004b0d03200141d8006a200036020020012003360260200120012903603703502001200141186a4104723602a801200141213602a401200141ac8a043602a00120014190016a2200200141d0006a200141a0016a103c200141f0006a2000103d0c020b200142808001370274200141f0b204360270200141f0006a220241021027200141a8016a2200200141f8006a2203280200360200200120012903703703a001200141a0016a220441ec8a04102120032000280200360200200120012903a0013703702001200141186a4104723602a801200141233602a401200141f88a043602a00120014190016a220020022004103c20022000103d0c010b200142808001370274200141f0b204360270200141f0006a220341011027200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a41b88b04102120014198016a2000280200360200200120012903a00137039001200320014190016a103d0b200141a8016a200141f8006a2802003602002001200129037022053703a00120014180016a2802002100200128027c2103200141003602782001200537037002400240024002400240024020012d001841016b0e0401020304000b200141f0006a22024100102a200141186a410172200210180c040b200141f0006a22024101102a200141186a410172200210180c030b200141f0006a22024102102a200141186a410472200210182001413c6a280200200210170c020b200141f0006a22024103102a200141186a410472200210182001413c6a28020020021017200141c4006a280200200141c8006a280200200210340c010b200141f0006a22024104102a200141186a410472200210182001413c6a280200200210170b200120012903703703a0012001200141a0016a200128027810192003200020012802002001280204100720012d00184103460440200141c4006a2802001a0b200141b0016a24000f0b41a08104411c418c88041013000bf80102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320042002280208411f102420032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000bf60102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320022802082004101820032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b4c01017f230041106b22022400200242808001370204200241f0b20436020020024100102a2002200141ff0171410647047f20024101102a20010541000b102a2000200228020810301041000b3501017f230041106b22002400200042808001370204200041f0b20436020020004101102a200010294101200028020810301041000ba60102057f017e230041306b2201240020014100360218200142808001370224200141f0b2043602204100200141206a2202101720012001290320370310200141086a200141106a220320012802281019200128020c210420012802082105200129031021062001410036022820012006370320200020021018200120012903203703102001200320012802281019200520042001280200200128020410081a200141306a24000b0d00200041f0b2042001100a000be02b020f7f017e230041c0026b220024000240024002400240102f41ff017141054604402000418080013602a00141f0b204200041a0016a22011003200041d8006a20002802a00141f0b2044180800141d48604101420002000290358370370200041003602a001200041f0006a2001410410110d0220002802a00122074118762101200741107621032007410876210202400240024002400240024002400240200741ff0171220741076b0e020104000b2007411f460d0120074129460d05200741c800460d04200741e9004704402007418301460d03200741c40147200241ff017141e8004772200341ff017141de0147200141d4014772720d0a410721010c090b200241ff0171410847200341ff0171411947722001412647720d09410021010c080b200241ff017141c10047200341ff0171411b4772200141af0147720d08410121010c070b200241ff017141e00147200341ff01714181014772200141ef0047720d07410221010c060b200241ff017141b00147200341ff017141e40047722001411947720d06200041a0016a200041f0006a101b20002802a0010d06200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410321010c050b200241ff0171410247200341ff017141e7004772200141c00047720d05200041d0006a200041f0006a100e20002802500d0520002802542105410421010c040b200241ff017141cd0047200341ff017141ae0147720d04200141b101460d010c040b200241ff017141da0147200341ff017141ba0147722001410247720d03200041a0016a200041f0006a102b20002d00a0010d032000200041b4016a2902003703a0022000200041b9016a2900003700a502200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a401210520002f01a201210420002d00a101210b410621010c020b200041a0016a200041f0006a101b20002802a0010d02200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410521010c010b200041043a00a001200041a0016a1032000b200041e8006a200041a8026a290300370300200020002903a002370360200041003602a8022000428080013702a401200041f0b2043602a0014100200041a0016a22021017200020002903a0013703a002200041c8006a200041a0026a20002802a8011019200028024c21072000280248210a20002802a0022103200020002802a402220c3602a001200a20072003200210002102200041406b20002802a0012003200c41d4860410140240024002400240410c20022002410c4f1b0e0401000002000b200041ac016a4101360200200041b4016a4100360200200041e487043602a80120004184ac043602b001200041003602a001200041a0016a41ec8704101e000b20002802442103200020002802403602f801200020033602fc01200041a0016a200041f8016a102b20002d00a001450d01200041ac016a4101360200200041b4016a4100360200200041b88c043602a8010c030b200041ac016a4101360200200041b4016a4100360200200041d88c043602a8010c020b200041f8006a2203200041aa016a220229010037030020004180016a220a200041b2016a220c29010037030020004187016a220d200041b9016a220e290000370000200020002901a20137037020002d00a1012107027f024002400240027f02400240024002400240024002400240024002400240024002400240200141016b0e0707060001020304080b200041a0026a102d200041b8016a2203200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122010440200020002d00fb013a009301200020002f00f9013b00910120002000280280022204360298012000200136029401200020002d00f8013a009001200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200041c8016a4200370300200041d0016a4200370300200020073a00a001200020002903703700a101200041003602e001200042003703c00120002005ad42208642cbfdefe70e843703d801200041003602f0012000428080013702fc01200041f0b2043602f801200041a0016a200041f8016a22031018200020002903f8013703e801200041386a200041e8016a220220002802800210192000280238210b20002903e801210f20004100360298022000200f370390022000420037038002200042003703f80120004190026a20034110102420002000290390023703e801200041306a200220002802980210192000280230210a20002903e801210f20004100360280022000200f3703f8012003200041d8016a41041024200520031017200020002903f8013703e801200041286a20022000280280021019200028022c210c2000280228210d20002802e8012102200020002802ec01220e3602f8014100200b4200200a200d200c2002200310022103200041206a20002802f8012002200e41d486041014410c20032003410c4f1b2203410d710d0920002802242103200020002802203602f801200020033602fc01200041186a200041f8016a100d02400240024020002d00184101710d000240024020002d00190e020001020b200041086a200041f8016a100d20002d00084101710d014102210220002d0009220341024f0d0120030d030c140b200041106a200041f8016a100d20002d00104101710d0020002d00114101460d010b410021010c110b200041013602e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410536029402200020004190026a360288022000200041e8016a36029002200041f8016a41c88504101e000b20044104742102024003402002450d01200241106b210220012802002104200141106a210120042005470d000b410421020c110b200041a0016a20082006103820002802a401450d0520002802a8014111490d05410521020c100b410121020c100b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122034504404101210241010c010b200041f8016a2000280280022206101a20002802f80122042000280280022201490d092006410474210920002802fc01210802402006452001200446720d00200320096a210b200820014104746a2102200041a0016a410472210a200120046b41016a2104200321010340200020012802003602a001200a200141086a2802002001410c6a2802001038200241086a200041a8016a290300370200200220002903a0013702002004450d01200441016a2104200241106a2102200141106a2201200b470d000b0b024020060440200820096a210441002101410021020340200120086a22092802002005460d02200141106a2101200241016a2102200941106a2004470d000b0b4103210241010c010b200220064f0d0a200641047420016b41106b21020240200120036a2201200141106a22044d044003402002450d02200120042d00003a0000200441016a2104200141016a2101200241016b21020c000b000b200441016b2104200141016b210103402002450d01200120026a200220046a2d00003a0000200241016b21020c000b000b200041b8016a2202200041b8026a2204290300370300200041b0016a200041b0026a2208290300370300200041a8016a200041a8026a2209290300370300200020002903a0023703a001200041a0016a22012003200641016b101f200041bc016a2004290300370200200041b4016a2008290300370200200041ac016a2009290300370200200041c4016a2005360200200020002903a0023702a401200041043a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000b2002103e000b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc01220a450440410121040c0b0b200028028002210b200041f8016a200820061038200041a0016a20002802fc012000280280021038024020002802a401450d0020002802a8014111490d00410521040c0b0b41032104200b450d0a200b410474210c4100210141002102034020052001200a6a2203280200470440200241016a2102200141106a2201200c470d010c0c0b0b200341086a2802001a20032005360200200341046a20002903f8013702002003410c6a20004180026a280200360200200041b8016a2203200041b8026a2202290300370300200041b0016a200041b0026a2204290300370300200041a8016a200041a8026a220c290300370300200020002903a0023703a001200041a0016a2201200a200b101f200041bc016a2002290300370200200041b4016a2004290300370200200041ac016a200c290300370200200041d0016a2006360200200041cc016a2008360200200041c8016a2009360200200041c4016a2005360200200020002903a0023702a401200041033a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200020073a00a001200020002903703700a101200110404106210441000c0b0b200041b8016a2000290065370000200020063600af01200020083600ab01200020093600a701200020053600a301200020043b00a1012000200b3a00a001200020002903603700b301230041306b22012400200141286a200041a0016a220341186a290000370300200141206a200341106a290000370300200141186a200341086a290000370300200120032900003703102001200141106a101620012802002104200041a0026a220220012802084100200128020422031b36020820022003410420031b36020420022004410020031b360200200141306a240020002802a402210320002802a8022100230041106b22012400200142808001370204200141f0b20436020002402003044020014100102a20032000200110200c010b20014101102a200110290b0c110b230041d0006b220124002001102d200141c8006a200141186a290300370300200141406b200141106a290300370300200141386a200141086a29030037030020012001290300370330200141206a200141306a101620012802242100200141d0006a2400230041106b22012400200142808001370204200141f0b204360200230041106b2203240020014100102a200320004100473a000f20012003410f6a41011024200341106a24000c100b200041ac016a22032006360200200041a8016a22022008360200200020093602a401200020053602a00120004190016a200041a0016a2201101c200041b8016a2204200041b8026a2206290300370300200041b0016a200041b0026a22082903003703002002200041a8026a2202290300370300200020002903a0023703a0012001200028029401200028029801101f200041bc016a2006290300370200200041b4016a200829030037020020032002290300370200200041c4016a2005360200200020002903a0023702a401200041023a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200420004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000c0c0b200041a0026a102d200041b8016a2202200041b8026a2201290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122040440200041bc016a2001290300370200200041b4016a200041b0026a2205290300370200200041ac016a200041a8026a2206290300370200200020002903a0023702a401200041bc81043602a00120004100360298022000428080013702fc01200041f0b2043602f80141eee7a015200041f8016a22081017200041a0016a220341047220081018200020002903f80137039002200020004190026a20002802800210192000280200200028020410091a200041b9016a2001290300370000200041b1016a22012005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041013a00a0012003103a2005200041f8006a290300370000200120004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a1012003104041060c010b41010b21012004452001103e000b200041a0026a102d200041b8016a2201200041b8026a2203290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122040440410021010c050b20012003290300370300200041b0016a200041b0026a2205290300370300200041a8016a200041a8026a2206290300370300200020002903a0023703a001200041a0016a220241044100101f200041b9016a2003290300370000200041b1016a22032005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041003a00a0012002103a2005200041f8006a290300370000200320004180016a290300370000200120004187016a290000370000200020073a00a001200020002903703700a10120021040410621010c040b20022003290300370100200c200a290300370100200e200d290000370000200020073a00a101200020002903703701a201200041003a00a001230041106b22012400200142808001370204200141f0b2043602000240200041a0016a22032d000045044020014100102a200341016a200110180c010b20014101102a200110290b0c0c0b200341b0b2046a2d000021010c050b41808004412141a484041013000b230041306b220124002001200636020420012002360200200141146a41033602002001411c6a41023602002001412c6a4106360200200141b8930436021020014100360208200141063602242001200141206a3602182001200141046a36022820012001360220200141086a41dc8804101e000b20044100472001103e000b41010b2004103e000b200020013a00e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410136029402200020004190026a360288022000200041e8016a36029002200041f8016a41d88504101e000b410120030d011a0b41010b2002103e000b103f000b20004184ac043602b001200041003602a001200041a0016a41808c04101e000b4100200128020810301041000b1800200128020041e5af044111200128020428020c1100000bdf0202047f027e230041e0006b220024000240102f41ff01712201410546044020004180800136023841f0b204200041386a22011003200041086a200028023841f0b2044180800141d48604101420002000290308370330200041003602380240200041306a2001410410110d002000280238419bddf6f405470d00200041386a200041306a102b20002d0038450d020b103f000b200020013a0038200041386a1032000b200041276a2201200041d1006a290000370000200041206a2202200041ca006a290100370300200041186a200041c2006a29010022043703002000200029013a220537031020002d00392103200041c1006a2004370000200041c9006a2002290300370000200041d0006a2001290000370000200020033a003820002005370039200041386a1040230041106b22002400200042808001370204200041f0b20436020020004100102a20004100102a4100200028020810301041000b5901017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41e08c04200241086a10462100200241206a240020000bf60301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1100000d040b200141086a21012004280200210020042802042106200441086a21042000200341186a2006110200450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1100000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a105d20032003290310370320200341086a2005200141046a105d20032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110200450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1100000d010b41000c010b41010b2101200341406b240020010b0f00200028020020012002104841000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a200020032002104b2004280208200428020c104c200028020821030b200028020420036a20012002100b1a2003200220036a22014b044041808d04411c41e093041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10480c020b230041106b22042400200441086a200020034101104b2004280208200428020c104c200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41808d04411c41d093041013000b5201017f230041206b2202240020002802002100200241186a200141106a290200370300200241106a200141086a290200370300200220012902003703082000200241086a10452100200241206a240020000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103720042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41a08d04412141d48e041013000b1f00024020014181808080784704402001450d0120001036000b0f0b1035000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041e8b204280200220220056a22042002490d0241ecb2042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d024100210341ecb2042004360200200220056a22042002490d030b41e8b2042004360200200221030c020b41b0ab04411c4194ab041013000b410021030b20002001360204200020033602000be406020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441db96046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441db96046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441db96046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441db96046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b210241002104200541047104404184ac04210420024184ac044184ac04105420026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a2007200410570d02200341106a2001200920026b4101105820032802142202418080c400460d0220032802102104200520082006200a28020c1100000d02200420022005200a10590d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b41012100200341086a2001200920026b41011058200328020c2205418080c400460d002003280208210920012802002202200141046a28020022012007200410570d00200220082006200128020c1100000d002009200520022001105921000b200341406b240020000f0b41f09304411c41a499041013000b4190940441214180a9041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011053200528020c21012000200528020836020020002001360204200541106a24000b1400200020012002200341f8b00441909404106a0ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d002001200010552206200020016a22082004417c716a200441037110556a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41809d041056200328020c21052003280208210820032003280200200328020422002000417c7141909e041056200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41f09304411c4198a0041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441f09304411c41c8a0041013000b41f09304411c41a8a0041013000b41f09304411c41b8a0041013000b41f09304411c4188a0041013000b20012002105521020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41f09304411c41f0a8041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41acac04412320041013000b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41f09304411c41b499041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110200450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110200450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a4100200120021053200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bee04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11000021000c020b41f09304411c41d8a1041013000b200b450440200128020020032004200128020428020c11000021000c010b2001410c6a2802002200200320046a2003105422024b0440200941086a2001200020026b4100105841012100200928020c2202418080c400460d01200928020821062001280200220520032004200141046a280200220128020c1100000d012006200220052001105921000c010b200128020020032004200128020428020c11000021000b200941106a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044108470d0120012802000b2802002104410121030b20002004360204200020033602000b4d01017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a10462100200341206a240020000bde08010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c2003280270200328027410600240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041c89a04105a200341c8006a200420032802502003280254106120032802484101470d02200328024c21010c050b200341306a20042001200010612003280234210120032802300c050b41909404412141a8a7041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241f89a041052200341386a2004200328024020032802441061410020032802384101470d011a2002200328023c6a220120024f0d0041f09304411c41889b041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002106020032802282202450d05200328022c2100200341206a20032802782009410441d8a704105a20022000200328022020032802241062450d05200341186a200328026020032802702200200c106320032000360260200328021c2102200328021821000c080b200320032802743602700c060b41f09304411c41d89a041013000b41f09304411c41b8a7041013000b41f09304411c41c8a7041013000b41f09304411c41e89a041013000b200341106a2003280268200328026c20032802702003280274106020032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a2004200120032802681063200328020c2102200328020821000b20000d010b41000c050b20082d0000450d01200741d495044104200628020c110000450d010c020b41909404412141e8a1041013000b2003410a36028c0120082002047f200320002002200241016b41a09e0410522003418c016a41012003280200200328020410620541000b3a0000200720002002200628020c110000450d010b0b41010b210220034190016a240020020b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011053200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4d01017f2001200346047f027f034041002001450d011a200141016b210120022d0000210320002d00002104200041016a2100200241016a210220032004460d000b200420036b0b0541010b450b1400200020012002200341fca20441909404106a0b6001027f230041206b220224002001280204210320012802002101200241186a2000280200220041106a290200370300200241106a200041086a2902003703002002200029020037030820012003200241086a10462100200241206a240020000b0b0020002802002001105b0b1800200128020041acb2044105200128020428020c1100000b990301037f230041406a22022400200028020021034101210002402001280200220441a09504410c200141046a280200220128020c1100000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241b0950436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a105e450d010c020b20032802002200200328020428020c11090042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241b09504360230200241003602282002410a3602142002200241106a36023820022002410c6a36021020042001200241286a105e0d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4106360200200241346a4106360200200241f894043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a105e21000b200241406b240020000b1400200020012002200341ccab0441e0ab04106a0b1400200020012002200341f8b0044190b104106a0b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41063602002004200336021020044100360208200441063602242004200441206a3602182004200441046a36022820042004360220200441086a2002101e000b0b9d320700418080040bf50c617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e352f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77ee33a8024661696c656420746f206765742076616c756520696e204d617070696e673a20c0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e7273e8000100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000600101006d0000009d00000011000000600101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b000000010000000100000001000000100901007f000000c30800001100000043726f73732d636f6e74726163742063616c6c206661696c656420776974682034020100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f63616c6c2f63616c6c5f6275696c6465722e72730000005c020100690000007b000000110000005c0201006900000078000000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300e80201006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000600101006d0000006b0100000e000000600101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72c80301001c000000600101006d000000ed00000017000000601601006e000000c100000037000000601601006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f74797065732e727300001c0401003e000000330000001900000041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465640004160100000000006c04010041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465643a3a6f776e657241646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665640000000416010000000000be04010041646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665643a3a6f776e657241646472657373426f6f6b3a3a4964656e74697479416464656441646472657373426f6f6b3a3a4964656e7469747941646465643a3a6f776e657241646472657373426f6f6b3a3a4e69636b6e616d655570646174656400000004160100000000004d05010041646472657373426f6f6b3a3a4e69636b6e616d65557064617465643a3a6f776e657241646472657373426f6f6b3a3a4964656e7469747952656d6f7665640004160100000000009b0501002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f6c69622e7273c40501003c0000002e00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900100601002700000073746f7261676520656e7472792077617320656d7074790040060100170000000b00000004000000040000000c0000000d0000000e0041808d040ba418617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b00000000000000010000000f0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300d40601007f0000008a0100001c0000006361706163697479206f766572666c6f770000006407010011000000d40601007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000d08010015000000220801000d000000900701007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000830801007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273292073686f756c64206265203c206c656e202869732072656d6f76616c20696e646578202869732000a5090100120000008f09010016000000310a010001000000100901007f000000300700000d000000100901007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320320a010020000000520a0100120000003a0000000416010000000000740a010001000000740a0100010000000b00000000000000010000001000000070616e69636b65642061742027272c20ac0a010001000000ad0a0100030000003a2000000416010000000000c00a010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000230c01007e0000005d0500000d000000230c01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300c40c0100830000004e0000002f000000c40c0100830000005a0000001f000000c40c0100830000006300000009000000c40c0100830000006800000027000000c40c010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820980d010012000000aa0d01002200000072616e676520656e6420696e64657820dc0d010010000000aa0d0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000fc0d010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273900e010080000000fe0300002f000000900e010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028300f010015000000450f01002b000000310a0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273880f0100800000004700000015000000880f0100800000005400000011000000880f0100800000005a00000009000000880f0100800000006400000011000000880f010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300581001007f0000009100000011000000581001007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000f810010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300008c11010086000000e50000001500000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041e6a5040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a4a6040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e727300002413010082000000a1010000470000002413010082000000b4010000200000002413010082000000b4010000110000002413010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273e8130100880000009500000001000000dd0a01007e000000cd0100000500000004160100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730010150100830000002f010000180041b0ab040b51617474656d707420746f206164642077697468206f766572666c6f77f617010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f77004190ac040bf504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a04160100000000004f160100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000601601006e0000005a0000001c000000601601006e0000005a00000009000000601601006e0000005a00000031000000601601006e0000006500000009000000601601006e000000830000001a000000601601006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f6465436f756c644e6f7452656164496e7075742f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e7273f6170100820000008201000047004190b1040bd701617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e352f7372632f636f6465632e7273000000b118010068000000770000000e0000004572726f7201020304050607080a0b0c09000000190000001c000000160000001400000019000000f7140100db140100c5140100b1140100981401","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NicknameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"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":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":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"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":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":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file +export const ContractAbi = `{"source":{"hash":"0x635373364dfd9119cbf8e795bfa3deb6e9b989e4b43b986d169fc05cceb8d40b","language":"ink! 4.3.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NicknameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"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":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":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"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":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":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; +export const ContractFile = `{"source":{"hash":"0x635373364dfd9119cbf8e795bfa3deb6e9b989e4b43b986d169fc05cceb8d40b","language":"ink! 4.3.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000015a0e60037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060047f7f7f7f0060057f7f7f7f7f0060017f0060047f7f7f7f017f60000060017f017e60087f7f7e7f7f7f7f7f017f6000017f60017f017f60067f7f7f7f7f7f0002ea010c057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640001057365616c310463616c6c000a057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740004057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650002057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100362610001010100050004030503010101030101010201030301010303030501010601010106050b0c0306020308060403010603030108010601080208020000030202040103020602090504020205070407050202030000050407040202020204040d04040501700111110608017f01418080040b0711020463616c6c0042066465706c6f7900440916010041010b101d5c5b33434e675064654f47494a66510ac9ab01612b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6e01027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a000020002802002100200341086a200120024101418c8104101020002003280208200328020c10110c010b20002802002001200210110b2100200341106a240020000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6001047f230041106b22032400200028020422042002492205450440200341086a41002002200028020022061069200120022003280208200328020c419cb204102620032002200420061069200020032903003702000b200341106a240020050b1400200020012002200341ccab0441808004106a0b5001017f230041206b220324002003410c6a4101360200200341146a410036020020034184ac04360210200341003602002003200136021c200320003602182003200341186a36020820032002101e000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0e0020002001200241ec9b04106b0bf00401067f23004190016b22022400200241346a200141186a2900003702002002412c6a200141106a290000370200200241246a200141086a290000370200200241bc81043602182002200129000037021c2002410036024820024280800137027c200241f0b20436027841eee7a015200241f8006a22051017200241186a4104722005101820022002290378370340200241106a200241406b2002280280011019200228021421032002280210210620022802402101200220022802442207360278200620032001200510002103200241086a20022802782001200741d486041014024002400240410c20032003410c4f1b0e0400020201020b200228020c210120022002280208360250200220013602542002200241d0006a100c024020022802000d00200241d8006a2002280254410476220320022802042201200120034b1b101a20010440200241f8006a41047221030340200241f8006a200241d0006a101b20022802780d02200241f0006a200341086a29020037030020022003290200370368200241d8006a200241e8006a101c200141016b22010d000b0b200228025c2204450d0020022802602101200228025821030c010b200241003a005820024184016a41013602002002418c016a4101360200200241e0810436028001200241003602782002410136026c2002200241e8006a360288012002200241d8006a360268200241f8006a41d08204101e000b20002001360208200020043602042000200336020020024190016a24000f0b20024184016a41013602002002418c016a4100360200200241e487043602800120024184ac043602880120024100360278200241f8006a41ec8704101e000b2601017f230041106b220224002002200036020c20012002410c6a41041024200241106a24000b0a0020012000412010240b4501017f2002200128020422034b044041acac04412341a0ae041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b800201047f02400240024002402001450440410421020c010b200141ffffff3f4b22020d01200141047422054100480d012005200141808080c000494102746a41016b4100417c20021b7122042005490d0241e8b204280200220220046a22032002490d0341ecb2042802002003490440200441ffff036a22022004490d042002411076220340002202417f46200241ffff0371200247720d042002411074220220034110746a22032002490d0441ecb2042003360200200220046a22032002490d040b41e8b20420033602002002450d030b2000410036020820002002360204200020013602000f0b1035000b41b0ab04411c4194ab041013000b20051036000bbc06010a7f230041206b22042400200441186a2001100e41012102024020042802180d00200428021c210a200441106a2001100d20042d00104101710d000240024020042d00110e020100020b200441086a2001100c20042802080d01200428020c220320012802044b0d0120042003102c2004280200210b200120042802042205200310110d012003450d00200341076b22014100200120034d1b2109200541036a417c7120056b2106410021020340024002400240024002400240024002400240200220056a2d00002207411874411875220841004e0440200620026b4103712006417f46720d0220022009490d010c060b02400240200741a4a4046a2d000041026b0e03040100060b200241016a220120034f0d05200120056a2c000021010240024002400240200741f0016b0e050100000002000b2008410f6a41ff017141024b200141004e720d0820014140490d020c080b200141f0006a41ff01714130490d010c070b2001418f7f4a0d060b200241026a220120034f0d05200120056a2c000041bf7f4a0d05200241036a220120034f0d05200120056a2c000041bf7f4c0d040c050b200241016a220120034f0d04200120056a2c00002101024002400240200741e001470440200741ed01460d012008411f6a41ff0171410c490d022008417e71416e47200141004e720d0820014140490d030c080b200141607141a07f460d020c070b200141a07f480d010c060b200141bf7f4a0d050b200241026a220120034f0d04200120056a2c000041bf7f4c0d030c040b0340200220056a2201280200200141046a28020072418081828478710d052002200241086a22014d044020012102200120094f0d070c010b0b41f09304411c4194a4041013000b200241016a21020c050b200241016a220120034f0d01200120056a2c000041bf7f4a0d010b200141016a21020c030b410121020c060b200221010b200120034f0d0120012003200120034b1b21020340200120056a2c00004100480440200121020c020b200141016a22012002470d000b0c010b20022003490d010b0b200321060b2000200a360204200041106a20063602002000410c6a2005360200200041086a200b360200410021020b20002002360200200441206a24000bb80201057f200028020822032000280200460440230041206b2202240002400240200341016a2204450d0002402000280200220320036a220520034f044041042005200420042005491b2204200441044d1b22044104742105200441808080c0004941027421060240200304402002200028020436021020024104360218200220034104743602140c010b200241003602180b200220052006200241106a10372002280200450d01200241086a280200450d0220022802041036000b41f08304412141d48e041013000b200228020421032000200436020020002003360204200241206a24000c010b1035000b200028020821030b200028020420034104746a22022001290200370200200241086a200141086a290200370200200341016a220145044041a08104411c41d093041013000b200020013602080bb60401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280200220341dfaf0441062001280204220528020c22041100000d0c024020012d0018410471450440200341dc9504410120041100000d0e200341acb20441052004110000450d010c0e0b200341da9504410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241acb2044105105f0d0d200241d895044102105f0d0d0b200341b194044101200411000021000c0c0b200128020041d2af04410d200128020428020c11000021000c0b0b200128020041c4af04410e200128020428020c11000021000c0a0b200128020041b9af04410b200128020428020c11000021000c090b2001280200419faf04411a200128020428020c11000021000c080b20012802004191af04410e200128020428020c11000021000c070b20012802004181af044110200128020428020c11000021000c060b200128020041f5ae04410c200128020428020c11000021000c050b200128020041eaae04410b200128020428020c11000021000c040b200128020041e3ae044107200128020428020c11000021000c030b200128020041d4ae04410f200128020428020c11000021000c020b200128020041c3ae044111200128020428020c11000021000c010b200128020041b0ae044113200128020428020c11000021000b200241106a240020000be10201017f230041206b22022400200241013a0018200220013602142002200036021020024190950436020c20024184ac04360208230041406a220124002001200241086a36020c2001410736022420012001410c6a360220410021004104210202400240024002400240034020002000200241d0ac046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b103920014100360218200120012903003703102001410136023c20014102360234200141d0ac04360230200141003602282001200141206a360238200141106a200141286a10450d0141f0b2052d000045044041f1b2052d00004101710d050b410c20012802142001280218100522002000410c4f1b4109470d020c030b41808d04411c41f0a8041013000b41d090044133200141286a41c48d0441809204102e000b41f0b20541013a00000b41f1b20541013a00000b000b800202047f017e230041e0006b22032400200341346a200041186a2900003702002003412c6a200041106a290000370200200341246a200041086a290000370200200341bc81043602182003200029000037021c20034100360248200342808001370254200341f0b20436025041eee7a015200341d0006a22041017200341186a4104722004101820032003290350370340200341106a200341406b2205200328025810192003280214210020032802102106200329034021072003410036025820032007370350200120022004102020032003290350370340200341086a200520032802581019200620002003280208200328020c10081a200341e0006a24000b430020012002102820010440200020014104746a21010340200028020020021017200041086a2802002000410c6a28020020021034200041106a22002001470d000b0b0bdc0102037f017e230041d0006b22022400200241106a22042000102220022903102105200241003602282002200537032020012802002001280204200241206a2203102320032001280208411c102420022002290320370310200241086a20042002280228101920032002280208200228020c102520022000280200220420002802042000280208220141fc8704101020024100360248200220022903003703402003200241406b10182001200120022802486a22034b044041a08104411c418c88041013000b2000200436020020002003360208200241d0006a24000b5201037f230041106b2202240020012802082203200128020422044b0440200320044190ae041031000b200241086a20032004200128020010682000200229030837020020004100360208200241106a24000b100020012002102820022000200110240b7901047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a20052004200028020010682003280208200328020c2001200241f0ad04102620002004360208200341106a24000f0b4190ac04411c41d0ad041013000b2004200641e0ad041015000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1006200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a20022000412041d0830410142003280208200328020c2001200241e0830410260b200341306a24000b85010020012003460440200020022001100b1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4106360200200041f09e0436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a2004101e000b7701037f230041206b22022400200241086a2000280200220420002802042000280208220341fc8704101020024100360218200220022903083703102001200241106a10282003200320022802186a22014b044041a08104411c418c88041013000b2000200436020020002001360208200241206a24000b7401017f230041106b2202240002402000413f4d044020012000410274102a0c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210240c010b200041ffffffff034d04402000410274410272200110170c010b20014103102a2000200110170b200241106a24000b080020004101102a0ba10101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a41023602002000411c6a41023602002000412c6a4106360200200041e4940436021020004100360208200041063602242000200041206a360218200020003602282000200041046a360220200041086a4180ae04101e000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76104d200228020822030d0120011036000b1035000b2000200336020420002001360200200241106a24000ba70101017f230041306b2201240020014180800136020041f0b2042001100420014180800136022c200141f0b2043602282001200141286a102b20012d00000440200141003a000041e4860441c10020014194840441a88704102e000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541c4950436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101e000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b1b002000418180014f044020004180800141b887041015000b20000b0e0020002001200241cc9b04106b0b5201017f230041206b220124002001410c6a4101360200200141146a410136020020014190a904360208200141003602002001410436021c200120003602182001200141186a360210200141808c04101e000b950101017f230041306b22022400200241146a41013602002002411c6a410136020020024190a9043602102002410036020820024103360224200220002d0000410274220041c0b2046a28020036022c2002200041d4b2046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a105e2100200241306a240020000b1d00200045044020024100102a0f0b20024101102a20002001200210230b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041f88e0436021020004184ac0436021820004100360208200041086a41808f04101e000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141b09004360218200141003602102001410636022c2001200141286a36022020012001410c6a360228200141106a41c09004101e000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002104d2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002104d20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d01200141e8b204280200220620086a22072006490d031a2003280200210a41ecb2042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d0341ecb20420033602002001200620086a22072006490d041a0b41e8b204200736020020012006450d031a2006200a2009100b210420010c030b20002001360204200041086a41003602000c030b41b0ab04411c4194ab041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b5901037f230041106b2203240002402001450440200041003602040c010b200341086a20021039200328020821042000200328020c220536020420002004360200200520012002100b1a200020023602080b200341106a24000b3501017f230041106b22022400200241086a2001102c200228020c21012000200228020836020020002001360204200241106a24000bfc0902047f017e230041b0016b22012400200141186a20004134100b1a024002400240024002400240024020012d001841016b0e0401020304000b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a2203418c8904103b2001200141186a4101723602a801200141263602a4012001419889043602a00120014190016a220220002003103c20002002103d0c040b200142808001370274200141f0b204360270200141f0006a220041021027200141a8016a200141f8006a280200360200200120012903703703a0012000200141a0016a220341e08904103b2001200141186a4101723602a801200141263602a401200141ec89043602a00120014190016a220220002003103c20002002103d0c030b200142808001370274200141f0b204360270200141f0006a220241021027200141e8006a2200200141f8006a2802003602002001200129037037036020014190016a2203200141e0006a1022200129039001210520014100360278200120053703704184ac04410020021023200241928a04411a10242001200129037037039001200141106a2003200128027810192002200128021020012802141025200141086a2001280260220320012802642000280200220041fc87041010200141003602a801200120012903083703a0012002200141a0016a10182000200020012802a8016a22004b0d03200141d8006a200036020020012003360260200120012903603703502001200141186a4104723602a801200141213602a401200141ac8a043602a00120014190016a2200200141d0006a200141a0016a103c200141f0006a2000103d0c020b200142808001370274200141f0b204360270200141f0006a220241021027200141a8016a2200200141f8006a2203280200360200200120012903703703a001200141a0016a220441ec8a04102120032000280200360200200120012903a0013703702001200141186a4104723602a801200141233602a401200141f88a043602a00120014190016a220020022004103c20022000103d0c010b200142808001370274200141f0b204360270200141f0006a220341011027200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a41b88b04102120014198016a2000280200360200200120012903a00137039001200320014190016a103d0b200141a8016a200141f8006a2802003602002001200129037022053703a00120014180016a2802002100200128027c2103200141003602782001200537037002400240024002400240024020012d001841016b0e0401020304000b200141f0006a22024100102a200141186a410172200210180c040b200141f0006a22024101102a200141186a410172200210180c030b200141f0006a22024102102a200141186a410472200210182001413c6a280200200210170c020b200141f0006a22024103102a200141186a410472200210182001413c6a28020020021017200141c4006a280200200141c8006a280200200210340c010b200141f0006a22024104102a200141186a410472200210182001413c6a280200200210170b200120012903703703a0012001200141a0016a200128027810192003200020012802002001280204100720012d00184103460440200141c4006a2802001a0b200141b0016a24000f0b41a08104411c418c88041013000bf80102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320042002280208411f102420032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000bf60102037f017e230041d0006b22032400200341106a22052001102220032903102106200341003602282003200637032020022802002002280204200341206a2204102320022802082004101820032003290320370310200341086a20052003280228101920042003280208200328020c102520032001280200220520012802042001280208220241fc8704101020034100360248200320032903003703402004200341406b10182002200220032802486a22044b044041a08104411c418c88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b3501017f230041106b22002400200042808001370204200041f0b20436020020004101102a200010294101200028020810301041000b4c01017f230041106b22022400200242808001370204200241f0b20436020020024100102a2002200141ff0171410647047f20024101102a20010541000b102a2000200228020810301041000ba60102057f017e230041306b2201240020014100360218200142808001370224200141f0b2043602204100200141206a2202101720012001290320370310200141086a200141106a220320012802281019200128020c210420012802082105200129031021062001410036022820012006370320200020021018200120012903203703102001200320012802281019200520042001280200200128020410081a200141306a24000b0d00200041f0b2042001100a000be02b020f7f017e230041c0026b220024000240024002400240102f41ff017141054604402000418080013602a00141f0b204200041a0016a22011003200041d8006a20002802a00141f0b2044180800141d48604101420002000290358370370200041003602a001200041f0006a2001410410110d0220002802a00122074118762101200741107621032007410876210202400240024002400240024002400240200741ff0171220741076b0e020104000b2007411f460d0120074129460d05200741c800460d04200741e9004704402007418301460d03200741c40147200241ff017141e8004772200341ff017141de0147200141d4014772720d0a410721010c090b200241ff0171410847200341ff0171411947722001412647720d09410021010c080b200241ff017141c10047200341ff0171411b4772200141af0147720d08410121010c070b200241ff017141e00147200341ff01714181014772200141ef0047720d07410221010c060b200241ff017141b00147200341ff017141e40047722001411947720d06200041a0016a200041f0006a101b20002802a0010d06200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410321010c050b200241ff0171410247200341ff017141e7004772200141c00047720d05200041d0006a200041f0006a100e20002802500d0520002802542105410421010c040b200241ff017141cd0047200341ff017141ae0147720d04200141b101460d010c040b200241ff017141da0147200341ff017141ba0147722001410247720d03200041a0016a200041f0006a102b20002d00a0010d032000200041b4016a2902003703a0022000200041b9016a2900003700a502200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a401210520002f01a201210420002d00a101210b410621010c020b200041a0016a200041f0006a101b20002802a0010d02200041b0016a2802002106200041ac016a2802002108200041a8016a280200210920002802a4012105410521010c010b200041043a00a001200041a0016a1032000b200041e8006a200041a8026a290300370300200020002903a002370360200041003602a8022000428080013702a401200041f0b2043602a0014100200041a0016a22021017200020002903a0013703a002200041c8006a200041a0026a20002802a8011019200028024c21072000280248210a20002802a0022103200020002802a402220c3602a001200a20072003200210002102200041406b20002802a0012003200c41d4860410140240024002400240410c20022002410c4f1b0e0401000002000b200041ac016a4101360200200041b4016a4100360200200041e487043602a80120004184ac043602b001200041003602a001200041a0016a41ec8704101e000b20002802442103200020002802403602f801200020033602fc01200041a0016a200041f8016a102b20002d00a001450d01200041ac016a4101360200200041b4016a4100360200200041b88c043602a8010c030b200041ac016a4101360200200041b4016a4100360200200041d88c043602a8010c020b200041f8006a2203200041aa016a220229010037030020004180016a220a200041b2016a220c29010037030020004187016a220d200041b9016a220e290000370000200020002901a20137037020002d00a1012107027f024002400240027f02400240024002400240024002400240024002400240024002400240200141016b0e0707060001020304080b200041a0026a102d200041b8016a2203200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122010440200020002d00fb013a009301200020002f00f9013b00910120002000280280022204360298012000200136029401200020002d00f8013a009001200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200041c8016a4200370300200041d0016a4200370300200020073a00a001200020002903703700a101200041003602e001200042003703c00120002005ad42208642cbfdefe70e843703d801200041003602f0012000428080013702fc01200041f0b2043602f801200041a0016a200041f8016a22031018200020002903f8013703e801200041386a200041e8016a220220002802800210192000280238210b20002903e801210f20004100360298022000200f370390022000420037038002200042003703f80120004190026a20034110102420002000290390023703e801200041306a200220002802980210192000280230210a20002903e801210f20004100360280022000200f3703f8012003200041d8016a41041024200520031017200020002903f8013703e801200041286a20022000280280021019200028022c210c2000280228210d20002802e8012102200020002802ec01220e3602f8014100200b4200200a200d200c2002200310022103200041206a20002802f8012002200e41d486041014410c20032003410c4f1b2203410d710d0920002802242103200020002802203602f801200020033602fc01200041186a200041f8016a100d02400240024020002d00184101710d000240024020002d00190e020001020b200041086a200041f8016a100d20002d00084101710d014102210220002d0009220341024f0d0120030d030c140b200041106a200041f8016a100d20002d00104101710d0020002d00114101460d010b410021010c110b200041013602e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410536029402200020004190026a360288022000200041e8016a36029002200041f8016a41c88504101e000b20044104742102024003402002450d01200241106b210220012802002104200141106a210120042005470d000b410421020c110b200041a0016a20082006103820002802a401450d0520002802a8014111490d05410521020c100b410121020c100b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122034504404101210241010c010b200041f8016a2000280280022206101a20002802f80122042000280280022201490d092006410474210920002802fc01210802402006452001200446720d00200320096a210b200820014104746a2102200041a0016a410472210a200120046b41016a2104200321010340200020012802003602a001200a200141086a2802002001410c6a2802001038200241086a200041a8016a290300370200200220002903a0013702002004450d01200441016a2104200241106a2102200141106a2201200b470d000b0b024020060440200820096a210441002101410021020340200120086a22092802002005460d02200141106a2101200241016a2102200941106a2004470d000b0b4103210241010c010b200220064f0d0a200641047420016b41106b21020240200120036a2201200141106a22044d044003402002450d02200120042d00003a0000200441016a2104200141016a2101200241016b21020c000b000b200441016b2104200141016b210103402002450d01200120026a200220046a2d00003a0000200241016b21020c000b000b200041b8016a2202200041b8026a2204290300370300200041b0016a200041b0026a2208290300370300200041a8016a200041a8026a2209290300370300200020002903a0023703a001200041a0016a22012003200641016b101f200041bc016a2004290300370200200041b4016a2008290300370200200041ac016a2009290300370200200041c4016a2005360200200020002903a0023702a401200041043a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000b2002103f000b200041a0026a102d200041b8016a200041b8026a290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc01220a450440410121040c0b0b200028028002210b200041f8016a200820061038200041a0016a20002802fc012000280280021038024020002802a401450d0020002802a8014111490d00410521040c0b0b41032104200b450d0a200b410474210c4100210141002102034020052001200a6a2203280200470440200241016a2102200141106a2201200c470d010c0c0b0b200341086a2802001a20032005360200200341046a20002903f8013702002003410c6a20004180026a280200360200200041b8016a2203200041b8026a2202290300370300200041b0016a200041b0026a2204290300370300200041a8016a200041a8026a220c290300370300200020002903a0023703a001200041a0016a2201200a200b101f200041bc016a2002290300370200200041b4016a2004290300370200200041ac016a200c290300370200200041d0016a2006360200200041cc016a2008360200200041c8016a2009360200200041c4016a2005360200200020002903a0023702a401200041033a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200320004187016a290000370000200020073a00a001200020002903703700a101200110404106210441000c0b0b200041b8016a2000290065370000200020063600af01200020083600ab01200020093600a701200020053600a301200020043b00a1012000200b3a00a001200020002903603700b301230041306b22012400200141286a200041a0016a220341186a290000370300200141206a200341106a290000370300200141186a200341086a290000370300200120032900003703102001200141106a101620012802002104200041a0026a220220012802084100200128020422031b36020820022003410420031b36020420022004410020031b360200200141306a240020002802a402210320002802a8022100230041106b22012400200142808001370204200141f0b20436020002402003044020014100102a20032000200110200c010b20014101102a200110290b0c110b230041d0006b220124002001102d200141c8006a200141186a290300370300200141406b200141106a290300370300200141386a200141086a29030037030020012001290300370330200141206a200141306a101620012802242100200141d0006a2400230041106b22012400200142808001370204200141f0b204360200230041106b2203240020014100102a200320004100473a000f20012003410f6a41011024200341106a24000c100b200041ac016a22032006360200200041a8016a22022008360200200020093602a401200020053602a00120004190016a200041a0016a2201101c200041b8016a2204200041b8026a2206290300370300200041b0016a200041b0026a22082903003703002002200041a8026a2202290300370300200020002903a0023703a0012001200028029401200028029801101f200041bc016a2006290300370200200041b4016a200829030037020020032002290300370200200041c4016a2005360200200020002903a0023702a401200041023a00a0012001103a200041a9016a200041f8006a290300370000200041b1016a20004180016a290300370000200420004187016a290000370000200020073a00a001200020002903703700a101200110404106210241000c0c0b200041a0026a102d200041b8016a2202200041b8026a2201290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a1016027f20002802fc0122040440200041bc016a2001290300370200200041b4016a200041b0026a2205290300370200200041ac016a200041a8026a2206290300370200200020002903a0023702a401200041bc81043602a00120004100360298022000428080013702fc01200041f0b2043602f80141eee7a015200041f8016a22081017200041a0016a220341047220081018200020002903f80137039002200020004190026a20002802800210192000280200200028020410091a200041b9016a2001290300370000200041b1016a22012005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041013a00a0012003103a2005200041f8006a290300370000200120004180016a290300370000200220004187016a290000370000200020073a00a001200020002903703700a1012003104041060c010b41010b21012004452001103f000b200041a0026a102d200041b8016a2201200041b8026a2203290300370300200041b0016a200041b0026a290300370300200041a8016a200041a8026a290300370300200020002903a0023703a001200041f8016a200041a0016a101620002802fc0122040440410021010c050b20012003290300370300200041b0016a200041b0026a2205290300370300200041a8016a200041a8026a2206290300370300200020002903a0023703a001200041a0016a220241044100101f200041b9016a2003290300370000200041b1016a22032005290300370000200041a9016a22052006290300370000200020002903a0023700a101200041003a00a0012002103a2005200041f8006a290300370000200320004180016a290300370000200120004187016a290000370000200020073a00a001200020002903703700a10120021040410621010c040b20022003290300370100200c200a290300370100200e200d290000370000200020073a00a101200020002903703701a201200041003a00a001230041106b22012400200142808001370204200141f0b2043602000240200041a0016a22032d000045044020014100102a200341016a200110180c010b20014101102a200110290b0c0c0b200341b0b2046a2d000021010c050b41808004412141a484041013000b230041306b220124002001200636020420012002360200200141146a41033602002001411c6a41023602002001412c6a4106360200200141b8930436021020014100360208200141063602242001200141206a3602182001200141046a36022820012001360220200141086a41dc8804101e000b20044100472001103f000b41010b2004103f000b200020013a00e80120004184026a41013602002000418c026a4101360200200041d4840436028002200041003602f8012000410136029402200020004190026a360288022000200041e8016a36029002200041f8016a41d88504101e000b410120030d011a0b41010b2002103f000b103e000b20004184ac043602b001200041003602a001200041a0016a41808c04101e000b4100200128020810301041000b1800200128020041e5af044111200128020428020c1100000bdf0202047f027e230041e0006b220024000240102f41ff01712201410546044020004180800136023841f0b204200041386a22011003200041086a200028023841f0b2044180800141d48604101420002000290308370330200041003602380240200041306a2001410410110d002000280238419bddf6f405470d00200041386a200041306a102b20002d0038450d020b103e000b200020013a0038200041386a1032000b200041276a2201200041d1006a290000370000200041206a2202200041ca006a290100370300200041186a200041c2006a29010022043703002000200029013a220537031020002d00392103200041c1006a2004370000200041c9006a2002290300370000200041d0006a2001290000370000200020033a003820002005370039200041386a1040230041106b22002400200042808001370204200041f0b20436020020004100102a20004100102a4100200028020810301041000b5901017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41e08c04200241086a10462100200241206a240020000bf60301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1100000d040b200141086a21012004280200210020042802042106200441086a21042000200341186a2006110200450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1100000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a105d20032003290310370320200341086a2005200141046a105d20032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110200450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1100000d010b41000c010b41010b2101200341406b240020010b0f00200028020020012002104841000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a200020032002104b2004280208200428020c104c200028020821030b200028020420036a20012002100b1a2003200220036a22014b044041808d04411c41e093041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10480c020b230041106b22042400200441086a200020034101104b2004280208200428020c104c200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41808d04411c41d093041013000b5201017f230041206b2202240020002802002100200241186a200141106a290200370300200241106a200141086a290200370300200220012902003703082000200241086a10452100200241206a240020000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103720042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41a08d04412141d48e041013000b1f00024020014181808080784704402001450d0120001036000b0f0b1035000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d044041e8b204280200220220056a22042002490d0241ecb2042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d024100210341ecb2042004360200200220056a22042002490d030b41e8b2042004360200200221030c020b41b0ab04411c4194ab041013000b410021030b20002001360204200020033602000be406020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441db96046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441db96046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441db96046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441db96046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b210241002104200541047104404184ac04210420024184ac044184ac04105420026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a2007200410570d02200341106a2001200920026b4101105820032802142202418080c400460d0220032802102104200520082006200a28020c1100000d02200420022005200a10590d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a28020022012007200410570d01200220082006200128020c11000021000c010b41012100200341086a2001200920026b41011058200328020c2205418080c400460d002003280208210920012802002202200141046a28020022012007200410570d00200220082006200128020c1100000d002009200520022001105921000b200341406b240020000f0b41f09304411c41a499041013000b4190940441214180a9041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b22052400200220034904402003200220041031000b200541086a2003200220011053200528020c21012000200528020836020020002001360204200541106a24000b1400200020012002200341f8b00441909404106a0ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d002001200010552206200020016a22082004417c716a200441037110556a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41809d041056200328020c21052003280208210820032003280200200328020422002000417c7141909e041056200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41f09304411c4198a0041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441f09304411c41c8a0041013000b41f09304411c41a8a0041013000b41f09304411c41b8a0041013000b41f09304411c4188a0041013000b20012002105521020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41f09304411c41f0a8041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41acac04412320041013000b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41f09304411c41b499041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110200450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110200450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a4100200120021053200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bee04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11000021000c020b41f09304411c41d8a1041013000b200b450440200128020020032004200128020428020c11000021000c010b2001410c6a2802002200200320046a2003105422024b0440200941086a2001200020026b4100105841012100200928020c2202418080c400460d01200928020821062001280200220520032004200141046a280200220128020c1100000d012006200220052001105921000c010b200128020020032004200128020428020c11000021000b200941106a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044108470d0120012802000b2802002104410121030b20002004360204200020033602000b4d01017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a10462100200341206a240020000bde08010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c2003280270200328027410600240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041c89a04105a200341c8006a200420032802502003280254106120032802484101470d02200328024c21010c050b200341306a20042001200010612003280234210120032802300c050b41909404412141a8a7041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241f89a041052200341386a2004200328024020032802441061410020032802384101470d011a2002200328023c6a220120024f0d0041f09304411c41889b041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b2002106020032802282202450d05200328022c2100200341206a20032802782009410441d8a704105a20022000200328022020032802241062450d05200341186a200328026020032802702200200c106320032000360260200328021c2102200328021821000c080b200320032802743602700c060b41f09304411c41d89a041013000b41f09304411c41b8a7041013000b41f09304411c41c8a7041013000b41f09304411c41e89a041013000b200341106a2003280268200328026c20032802702003280274106020032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a2004200120032802681063200328020c2102200328020821000b20000d010b41000c050b20082d0000450d01200741d495044104200628020c110000450d010c020b41909404412141e8a1041013000b2003410a36028c0120082002047f200320002002200241016b41a09e0410522003418c016a41012003280200200328020410620541000b3a0000200720002002200628020c110000450d010b0b41010b210220034190016a240020020b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011053200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4d01017f2001200346047f027f034041002001450d011a200141016b210120022d0000210320002d00002104200041016a2100200241016a210220032004460d000b200420036b0b0541010b450b1400200020012002200341fca20441909404106a0b6001027f230041206b220224002001280204210320012802002101200241186a2000280200220041106a290200370300200241106a200041086a2902003703002002200029020037030820012003200241086a10462100200241206a240020000b0b0020002802002001105b0b1800200128020041acb2044105200128020428020c1100000b990301037f230041406a22022400200028020021034101210002402001280200220441a09504410c200141046a280200220128020c1100000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241b0950436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a105e450d010c020b20032802002200200328020428020c11090042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241b09504360230200241003602282002410a3602142002200241106a36023820022002410c6a36021020042001200241286a105e0d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4106360200200241346a4106360200200241f894043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a105e21000b200241406b240020000b1400200020012002200341ccab0441e0ab04106a0b1400200020012002200341f8b0044190b104106a0b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41063602002004200336021020044100360208200441063602242004200441206a3602182004200441046a36022820042004360220200441086a2002101e000b0b9d320700418080040bf50c617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e352f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77ee33a8024661696c656420746f206765742076616c756520696e204d617070696e673a20c0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e7273e8000100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000600101006d0000009d00000011000000600101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b000000010000000100000001000000100901007f000000c30800001100000043726f73732d636f6e74726163742063616c6c206661696c656420776974682034020100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f63616c6c2f63616c6c5f6275696c6465722e72730000005c020100690000007b000000110000005c0201006900000078000000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300e80201006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000600101006d0000006b0100000e000000600101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72c80301001c000000600101006d000000ed00000017000000601601006e000000c100000037000000601601006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f74797065732e727300001c0401003e000000330000001900000041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465640004160100000000006c04010041646472657373426f6f6b3a3a41646472657373426f6f6b437265617465643a3a6f776e657241646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665640000000416010000000000be04010041646472657373426f6f6b3a3a41646472657373426f6f6b52656d6f7665643a3a6f776e657241646472657373426f6f6b3a3a4964656e74697479416464656441646472657373426f6f6b3a3a4964656e7469747941646465643a3a6f776e657241646472657373426f6f6b3a3a4e69636b6e616d655570646174656400000004160100000000004d05010041646472657373426f6f6b3a3a4e69636b6e616d65557064617465643a3a6f776e657241646472657373426f6f6b3a3a4964656e7469747952656d6f7665640004160100000000009b0501002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f616464726573735f626f6f6b2f6c69622e7273c40501003c0000002e00000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900100601002700000073746f7261676520656e7472792077617320656d7074790040060100170000000b00000004000000040000000c0000000d0000000e0041808d040ba418617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000b00000000000000010000000f0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300d40601007f0000008a0100001c0000006361706163697479206f766572666c6f770000006407010011000000d40601007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000d08010015000000220801000d000000900701007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000830801007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273292073686f756c64206265203c206c656e202869732072656d6f76616c20696e646578202869732000a5090100120000008f09010016000000310a010001000000100901007f000000300700000d000000100901007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320320a010020000000520a0100120000003a0000000416010000000000740a010001000000740a0100010000000b00000000000000010000001000000070616e69636b65642061742027272c20ac0a010001000000ad0a0100030000003a2000000416010000000000c00a010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000230c01007e0000005d0500000d000000230c01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300c40c0100830000004e0000002f000000c40c0100830000005a0000001f000000c40c0100830000006300000009000000c40c0100830000006800000027000000c40c010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820980d010012000000aa0d01002200000072616e676520656e6420696e64657820dc0d010010000000aa0d0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000fc0d010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273900e010080000000fe0300002f000000900e010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028300f010015000000450f01002b000000310a0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273880f0100800000004700000015000000880f0100800000005400000011000000880f0100800000005a00000009000000880f0100800000006400000011000000880f010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300581001007f0000009100000011000000581001007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000f810010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727300008c11010086000000e50000001500000001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041e6a5040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a4a6040bfd042f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e727300002413010082000000a1010000470000002413010082000000b4010000200000002413010082000000b4010000110000002413010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273e8130100880000009500000001000000dd0a01007e000000cd0100000500000004160100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730010150100830000002f010000180041b0ab040b51617474656d707420746f206164642077697468206f766572666c6f77f617010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f77004190ac040bf504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a04160100000000004f160100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000601601006e0000005a0000001c000000601601006e0000005a00000009000000601601006e0000005a00000031000000601601006e0000006500000009000000601601006e000000830000001a000000601601006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f6465436f756c644e6f7452656164496e7075742f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e7273f6170100820000008201000047004190b1040bd701617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e352f7372632f636f6465632e7273000000b118010068000000770000000e0000004572726f7201020304050607080a0b0c09000000190000001c000000160000001400000019000000f7140100db140100c5140100b1140100981401","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"address_book","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[{"label":"identity_contract","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":["Constructor","Instantiate with the address of \`Identity\` contract."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":18},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":21},"hash":{"displayName":["Hash"],"type":19},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":20}},"events":[{"args":[{"docs":[" The owner of the newly created address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookCreated"},{"args":[{"docs":[" The owner of the removed address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"AddressBookRemoved"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity added to the address book."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityAdded"},{"args":[{"docs":[" The owner of the address book."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The identity that received a new nickname."],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The new nickname."],"indexed":false,"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"docs":[],"label":"NicknameUpdated"},{"args":[{"docs":[],"indexed":false,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"identity","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[],"default":false,"docs":[" Returns the address of the identity contract."],"label":"identity_contract","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":11},"selector":"0x69081926"},{"args":[],"default":false,"docs":[" Creates an address book for the caller."],"label":"create_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x07411baf"},{"args":[],"default":false,"docs":[" Removes the address book of the caller."],"label":"remove_address_book","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x1fe0816f"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Adds an identity to the user's address book."],"label":"add_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x83b06419"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Removes an identity from the user's address book."],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x08026740"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_nickname","type":{"displayName":["Option"],"type":3}}],"default":false,"docs":[" Update nickname of an identity."],"label":"update_nickname","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":12},"selector":"0x484daeb1"},{"args":[{"label":"account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the identities stored in the address book of a user."],"label":"identities_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":15},"selector":"0x29daba02"},{"args":[],"default":false,"docs":[" Returns whether the user has created an address book or not"],"label":"has_address_book","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xc468ded4"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x02a833ee","ty":0}},"name":"identities"}],"name":"AddressBookInfo"}},"root_key":"0x02a833ee"}},"name":"address_book_of"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"identity_contract"}],"name":"AddressBook"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":4,"type":{"def":{"primitive":"str"}}},{"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":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":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"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":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":9}],"index":0,"name":"Ok"},{"fields":[{"type":14}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":14}],"path":["Result"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AddressBookAlreadyCreated"},{"index":1,"name":"AddressBookDoesntExist"},{"index":2,"name":"IdentityDoesntExist"},{"index":3,"name":"IdentityNotAdded"},{"index":4,"name":"IdentityAlreadyAdded"},{"index":5,"name":"NickNameTooLong"}]}},"path":["address_book","Error"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":10}],"path":["Result"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":10}],"path":["Result"]}},{"id":17,"type":{"def":{"primitive":"bool"}}},{"id":18,"type":{"def":{"primitive":"u128"}}},{"id":19,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":20,"type":{"def":{"primitive":"u64"}}},{"id":21,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file diff --git a/types/contract-info/identity.ts b/types/contract-info/identity.ts index df13e8a..a212116 100644 --- a/types/contract-info/identity.ts +++ b/types/contract-info/identity.ts @@ -1,2 +1,2 @@ -export const ContractAbi = `{"source":{"hash":"0xd34b9b90ae9ab8daf1183bc0ed41e7f8b1f1ae892867ab2b0c8f3dc97a028a3f","language":"ink! 4.3.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"},{"args":[{"label":"chains","type":{"displayName":["Vec"],"type":11}},{"label":"chain_ids","type":{"displayName":["Vec"],"type":7}}],"default":false,"docs":[],"label":"init_with_chains","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x0935da88"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":34},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":37},"hash":{"displayName":["Hash"],"type":35},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":36}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which a new address has been added."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been updated."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been removed."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`ChainId\` that is associated with the newly added chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The address type used on the chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":13}}],"docs":[],"label":"ChainAdded"},{"args":[{"docs":[" The \`ChainId\` that is associated with the updated chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The address type used on the updated chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":13}}],"docs":[],"label":"ChainUpdated"},{"args":[{"docs":[" The \`ChainId\` that is associated with the chain that got"," removed."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"ChainRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":14},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x713ca232"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the chain name that is associated with the specified \`ChainId\`."],"label":"chain_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x59d847e9"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":2}},{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified chain."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x525505e4"},{"args":[],"default":false,"docs":[" A list of all the available chains each associated with a \`ChainId\`."],"label":"available_chains","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":26},"selector":"0xa5cf243e"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0xfb893664"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Adds an address for a given chain"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x71cc798d"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Updates the address of the given chain"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x892f75e4"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Removes the address by chain"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x08026740"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"info","type":{"displayName":["ChainInfo"],"type":12}}],"default":false,"docs":[],"label":"add_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x1cd09676"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"new_address_type","type":{"displayName":["Option"],"type":33}}],"default":false,"docs":[],"label":"update_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x7d5eea00"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[],"label":"remove_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x5b23980f"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":5}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":2}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":5}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"enum":{"dispatchKey":"0x793e0339","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"ChainInfo"}},"root_key":"0x793e0339"}},"name":"chain_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":7}},"name":"chain_ids"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"admin"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":7,"type":{"def":{"sequence":{"type":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":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"sequence":{"type":12}}}},{"id":12,"type":{"def":{"composite":{"fields":[{"name":"account_type","type":13,"typeName":"AccountType"}]}},"path":["common","types","ChainInfo"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"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":16}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":16}],"path":["Option"]}},{"id":16,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(ChainId, EncryptedAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"fields":[{"type":18}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":18},{"name":"E","type":10}],"path":["Result"]}},{"id":18,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":10}],"path":["Result"]}},{"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":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":10}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":12}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":12}],"path":["Option"]}},{"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":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidChain"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"ChainNameTooLong"},{"index":6,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"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":{"sequence":{"type":28}}}},{"id":28,"type":{"def":{"tuple":[2,12]}}},{"id":29,"type":{"def":{"variant":{"variants":[{"fields":[{"type":30}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":30},{"name":"E","type":10}],"path":["Result"]}},{"id":30,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":25}],"path":["Result"]}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":10}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":25}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":13}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":13}],"path":["Option"]}},{"id":34,"type":{"def":{"primitive":"u128"}}},{"id":35,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":36,"type":{"def":{"primitive":"u64"}}},{"id":37,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; -export const ContractFile = `{"source":{"hash":"0xd34b9b90ae9ab8daf1183bc0ed41e7f8b1f1ae892867ab2b0c8f3dc97a028a3f","language":"ink! 4.3.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000014e0d60027f7f0060037f7f7f017f60037f7f7f0060027f7f017f60047f7f7f7f0060017f0060057f7f7f7f7f0060047f7f7f7f017f60000060017f017f60017f017e6000017f60067f7f7f7f7f7f0002dd010b057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c300d64656275675f6d6573736167650003057365616c300f686173685f626c616b65325f3235360002057365616c300d6465706f7369745f6576656e740004057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650003057365616c300b7365616c5f72657475726e000203656e76066d656d6f72790201021003860184010101000000010601040206020009000200090300000000000005000002020002000502060500050000000205060b0200000204000805000000000000000504090205030004020202000005020000020202080002050000080002030803010102030304020305030a0604030306070407060303020101060407040303030304040c040404040501700110100608017f01418080040b0711020463616c6c0061066465706c6f7900650919010041010b0f1c7c7b4c6e870170840185016f686a6b8601710ac1ee0184012b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6e01027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a000020002802002100200341086a200120024101418c8104101020002003280208200328020c10110c010b20002802002001200210110b2100200341106a240020000b4a01017f230041106b2205240020022003490440200320022004104a000b200541086a2003200220011012200528020c21012000200528020836020020002001360204200541106a24000b6201047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206108901200120022003280208200328020c41dcb104102d2003200220042006108901200020032903003702000b200341106a240020050b15002000200120022003419cab0441808004108a010b5001017f230041206b220324002003410c6a4101360200200341146a4100360200200341d4ab04360210200341003602002003200136021c200320003602182003200341186a36020820032002101a000b4b01017f230041106b22052400200120034d0440200541086a4100200120021012200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000b0f0020002001200241dc9e04108c010b5a01047f20012802042102200128020821050340024020022005460440410221030c010b2001200241046a220336020420022802002104200321022004101741ff017122034102460d010b0b200020033a0004200020043602000bfc0201057f230041406a220124002001410036022020014280800137022c200141a4b20436022841b986f8c907200141286a2203101820002003101820012001290328370318200141106a200141186a200128023010192001280214210220012802102104200128021821002001200128021c2205360228200420022000200310002102200141086a20012802282000200541a48704101402400240024002400240410c20022002410c4f1b0e0402000001000b200141346a41013602002001413c6a4100360200200141b48804360230200141d4ab0436023820014100360228200141286a41bc8804101a000b410221000c010b200128020c2100200120012802083602282001200036022c200141286a101b41ff017122004102460d010b200141406b240020000f0b200141003a0027200141346a41013602002001413c6a4101360200200141908204360230200141003602282001410136021c2001200141186a3602382001200141276a360218200141286a41808304101a000b2601017f230041106b220224002002200036020c20012002410c6a41041034200241106a24000b4501017f2002200128020422034b044041fcab04412341f0ad041013000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000be10201017f230041206b22022400200241013a0018200220013602142002200036021020024180980436020c200241d4ab04360208230041406a220124002001200241086a36020c2001410636022420012001410c6a360220410021004104210202400240024002400240034020002000200241a0ac046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b105220014100360218200120012903003703102001410136023c20014102360234200141a0ac04360230200141003602282001200141206a360238200141106a200141286a10660d0141a4b2052d000045044041a5b2052d00004101710d050b410c20012802142001280218100422002000410c4f1b4109470d020c030b41b09004411c41c8a8041013000b418094044133200141286a41f4900441b095041036000b41a4b20541013a00000b41a5b20541013a00000b000b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0bb60401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280200220341afaf0441062001280204220528020c22041101000d0c024020012d0018410471450440200341cc9804410120041101000d0e200341ecb10441052004110100450d010c0e0b200341ca9804410220041101000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241ecb1044105107f0d0d200241c898044102107f0d0d0b200341a197044101200411010021000c0c0b200128020041a2af04410d200128020428020c11010021000c0b0b20012802004194af04410e200128020428020c11010021000c0a0b20012802004189af04410b200128020428020c11010021000c090b200128020041efae04411a200128020428020c11010021000c080b200128020041e1ae04410e200128020428020c11010021000c070b200128020041d1ae044110200128020428020c11010021000c060b200128020041c5ae04410c200128020428020c11010021000c050b200128020041baae04410b200128020428020c11010021000c040b200128020041b3ae044107200128020428020c11010021000c030b200128020041a4ae04410f200128020428020c11010021000c020b20012802004193ae044111200128020428020c11010021000c010b20012802004180ae044113200128020428020c11010021000b200241106a240020000be40301067f230041f0006b220224002002413c6a200141186a290000370200200241346a200141106a2900003702002002412c6a200141086a290000370200200241e88104360220200220012900003702242002410036025020024280800137025c200241a4b20436025841b1d9d9e607200241d8006a22051018200241206a4104722005101e20022002290358370348200241186a200241c8006a20022802601019200228021c210320022802182106200228024821012002200228024c2207360258200620032001200510002103200241106a20022802582001200741a48704101402402000027f024002400240410c20032003410c4f1b0e0402000001000b200241e4006a4101360200200241ec006a4100360200200241b48804360260200241d4ab0436026820024100360258200241d8006a41bc8804101a000b41000c010b20022802142101200220022802103602582002200136025c200241086a200241d8006a100e20022802080d0141012104200228020c0b36020420002004360200200241f0006a24000f0b200241003a0057200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241d7006a360248200241d8006a41808304101a000b0a0020012000412010340ba30401067f230041f0006b220224002002410036022820024280800137025c200241a4b20436025841bbc0f9ea07200241d8006a2205101820012005101820022002290358370320200241186a200241206a20022802601019200228021c21032002280218210620022802202101200220022802242207360258200620032001200510002103200241106a20022802582001200741a487041014024002400240410c20032003410c4f1b0e0400020201020b200228021421012002200228021036023020022001360234200241086a200241306a100c024020022802080d00200241386a20022802344104762203200228020c2201200120034b1b10200240200104400340200241d8006a200241306a102120022802602203450d02200220022802643602542002200336025020022002290358370348200241386a200241c8006a1022200141016b22010d000b0b200228023c2204450d0120022802402101200228023821030c020b200241386a10230b200241003a0038200241e4006a4101360200200241ec006a4101360200200241908204360260200241003602582002410136024c2002200241c8006a3602682002200241386a360248200241d8006a41808304101a000b200020013602082000200436020420002003360200200241f0006a24000f0b200241e4006a4101360200200241ec006a4100360200200241b48804360260200241d4ab0436026820024100360258200241d8006a41bc8804101a000b7801037f230041106b220224000240024002402001450440410421030c010b200241086a20011046200228020c2203450d01200228020822044100480d01200220042003103b20022802002203450d020b200041003602082000200336020420002001360200200241106a24000f0b103e000b2004103f000b9f0101047f230041206b22022400200241186a2001100e02402002280218450440200228021c2104200241106a2001100c024020022802100d002002280214220320012802044b0d00200241086a20031033200228020821052001200228020c2201200310110d002000200336020c2000200136020820002005360204200020043602000c020b200041003602080c010b200041003602080b200241206a24000bd20201067f200028020822032000280200460440230041306b2202240002400240027f4100200341016a2203450d001a2000280200220420046a22052004490d01200241086a41042005200320032005491b2203200341044d1b22051046200228020c210320022802082106024020040440200041046a280200210720022004104620022007360220200220022903003702240c010b200241003602280b200241106a20062003200241206a103c20022802104504402002280214210320002005360200200041046a20033602004181808080780c010b20022802142103200241186a2802000b210420032004103d200241306a24000c010b41a084044121418492041013000b200028020821030b200028020420034104746a22022001290200370200200241086a200141086a290200370200200341016a220145044041a08104411c41c096041013000b200020013602080b11002000280200200041046a28020010450bb00102047f017e230041306b2202240020024100360218200242808001370224200241a4b20436022041b986f8c907200241206a2203101820002003101820022002290320370310200241086a200241106a220420022802281019200228020c210020022802082105200229031021062002410036022820022006370320200120031025200220022903203703102002200420022802281019200520002002280200200228020410071a200241306a24000b0b00200120002d000010310bb20102047f017e230041306b2203240020034100360218200342808001370224200341a4b20436022041bbc0f9ea07200341206a2204101820002004101820032003290320370310200341086a200341106a220520032802281019200328020c2100200328020821062003290310210720034100360228200320073703202001200220041027200320032903203703102003200520032802281019200620002003280200200328020410071a200341306a24000b430020012002102f20010440200020014104746a21010340200028020020021018200041086a2802002000410c6a28020020021050200041106a22002001470d000b0b0b0c0041e481042000200110290bac0102037f017e230041306b2203240020034100360218200342808001370224200341a4b2043602202000200341206a2204104d20012004101820032003290320370310200341086a200341106a220520032802281019200328020c21002003280208210120032903102106200341003602282003200637032020022004101e200320032903203703102003200520032802281019200120002003280200200328020410071a200341306a24000bff0102047f017e230041e0006b22022400200241346a200041186a2900003702002002412c6a200041106a290000370200200241246a200041086a290000370200200241e881043602182002200029000037021c20024100360248200242808001370254200241a4b20436025041b1d9d9e607200241d0006a22031018200241186a4104722003101e20022002290350370340200241106a200241406b220420022802581019200228021421002002280210210520022903402106200241003602582002200637035020012003101820022002290350370340200241086a200420022802581019200520002002280208200228020c10071a200241e0006a24000bb20101017f230041d0006b22012400200141246a200041186a2900003702002001411c6a200041106a290000370200200141146a200041086a290000370200200141e881043602082001200029000037020c20014100360238200142808001370244200141a4b20436024041b1d9d9e607200141406b22001018200141086a4104722000101e200120012903403703302001200141306a200128024810192001280200200128020410081a200141d0006a24000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1005200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a2002200041204180840410142003280208200328020c2001200241908404102d0b200341306a24000b85010020012003460440200020022001100a1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4105360200200041e0a10436021020004100360208200041053602242000200041206a360218200020003602282000200041046a360220200041086a2004101a000b7701047f230041206b22012400200141086a2000280200220320002802042000280208220241cc8804101020014100360218200120012903083703104102200141106a102f2002200220012802186a22044b044041a08104411c41dc88041013000b2000200336020020002004360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410310c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210340c010b200041ffffffff034d04402000410274410272200110180c010b2001410310312000200110180b200241106a24000b08002000410110310b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341d0ad041063000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76106d200228020822030d012001103f000b103e000b2000200336020420002001360200200241106a24000b7a01047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a2005200420002802001088012003280208200328020c2001200241c0ad04102d20002004360208200341106a24000f0b41e0ab04411c41a0ad041013000b2004200641b0ad041015000ba70101017f230041306b2201240020014180800136020041a4b2042001100320014180800136022c200141a4b2043602282001200141286a103220012d00000440200141003a000041b4870441c100200141d4840441f887041036000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541b4980436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101a000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b4c01037f230041106b22032400200341086a20024100104f200328020821042000200328020c220536020420002004360200200520012002410274100a1a20002002360208200341106a24000b2000230041106b2201240020000440200141086a200010420b200141106a24000b0d002000200141044108108b010b3901017f230041106b22032400200341086a200120024100104e200328020c21012000200328020836020020002001360204200341106a24000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002106d2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002106d20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d012001419cb204280200220620086a22072006490d031a2003280200210a41a0b2042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d0341a0b20420033602002001200620086a22072006490d041a0b419cb204200736020020012006450d031a2006200a2009100a210420010c030b20002001360204200041086a41003602000c030b4180ab04411c41ecaa041013000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b1f00024020014181808080784704402001450d012000103f000b0f0b103e000b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041a89204360210200041d4ab0436021820004100360208200041086a41b09204101a000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141e09304360218200141003602102001410536022c2001200141286a36022020012001410c6a360228200141106a41f09304101a000b6401017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a101d20002002290308370300200241306a24000b910101017f230041d0006b22022400200241086a41e481042001105d20022d00084102460440200220022d00093a002f2002413c6a4101360200200241c4006a4101360200200241908204360238200241003602302002410136024c2002200241c8006a36024020022002412f6a360248200241306a41808304101a000b2000200241086a4121100a1a200241d0006a24000b0d002000200141044104108b010b2000230041106b2201240020000440200141086a200010440b200141106a24000b0d002000200141014101108b010b2000230041106b2201240020000440200141086a200010460b200141106a24000b0d002000200141044110108b010b0e002000280200200028020c10450b5101017e0240200341808080807820026b20016e4b0440410021020c010b2001ad2003ad7e22044220885004402004a721010c010b41a08404412141c484041013000b20002002360204200020013602000b1b002000418180014f0440200041808001418888041015000b20000b0f0020002001200241bc9e04108c010b5201017f230041206b220124002001410c6a4101360200200141146a4101360200200141e8a804360208200141003602002001410436021c200120003602182001200141186a360210200141e48e04101a000b950101017f230041306b22022400200241146a41013602002002411c6a4101360200200241e8a8043602102002410036020820024103360224200220002d0000410274220041f4b1046a28020036022c200220004188b2046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a107e2100200241306a240020000b0b002000280200200110180bf40101027f02402001450d00200120026a41016b410020026b7122052001492102419cb20428020021040240024002400240200345044020020d020c010b20020d020b41002102200420056a22032004490d0341a0b2042802002003490440200541ffff036a22022005490d032002411076220340002202417f46200241ffff0371200247720d032002411074220420034110746a22032004490d034100210241a0b2042003360200200420056a22032004490d040b419cb2042003360200200421020c030b4180ab04411c41ecaa041013000b4180ab04411c41ecaa041013000b410021020b20002001360204200020023602000b8c0101037f230041206b2203240002402001450440410421020c010b200341186a200110420240200328021c2205450d00200328021822044100480d00027f2002450440200341106a20042005103b20032802100c010b200341086a200420054101104e20032802080b22020d012004103f000b103e000b2000200236020420002001360200200341206a24000b100020012002102f20022000200110340bed0101087f230041106b2206240020002002102020002802002205200028020822034f044002402002452003200546720d00200120024104746a2108200028020420034104746a2104200320056b41016a21030340200141086a280200210720012802002109200641086a2001410c6a280200220510522006280208210a200628020c20072005100a21072004410c6a2005360200200441086a2007360200200441046a200a360200200420093602002003450d01200341016a2103200441106a2104200141106a22012008470d000b0b20002002360208200641106a24000f0b41808004412141a886041013000b3501017f230041106b22022400200241086a20011033200228020c21012000200228020836020020002001360204200241106a24000b9d0101047f230041106b22022400200241086a2001100c0240024020022802084504400240200228020c220341ffffffff03712003470d002003410274220520012802044b0d00200220034101104f2002280200210420012002280204220120051011450d022004200110390b200041003602040c020b200041003602040c010b2000200336020820002001360204200020043602000b200241106a24000ba21202047f017e230041c0016b22012400200141386a20004128100a1a02400240024002400240024002400240024002400240200128023841016b0e080102030405060708000b20014280800137029401200141a4b2043602900120014190016a2202102e200141b8016a20014198016a28020036020020012001290390013703b001200141f0006a2200200141b0016a220441d48904105520014180016a22032000105620012903800121052001410036029801200120053703900141e08904412020021050200141386a4104722002101e200120012903900137038001200141106a20032001280298011019200220012802102001280214102c200141086a2001280270220320012802742001280278220041cc88041010200141003602b801200120012903083703b00120022004101e2000200020012802b8016a22004b0d09200141e8006a2000360200200120033602702001200129037037036020014190016a200141e0006a10570c080b20014280800137029401200141a4b2043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341988a0410582001200141386a4104723602b801200141233602b401200141a48a043602b00120014180016a22022000200310592000200210570c070b20014280800137029401200141a4b2043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341e08a04105a2001200141386a4104723602b801200141253602b401200141ec8a043602b00120014180016a22022000200310592000200210570c060b20014280800137029401200141a4b2043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341ac8b04105a2001200141386a4104723602b801200141253602b401200141b88b043602b00120014180016a22022000200310592000200210570c050b20014280800137029401200141a4b2043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f88b0410552001200141386a4104723602b801200141263602b401200141848c043602b00120014180016a22022000200310592000200210570c040b20014280800137029401200141a4b2043602900120014190016a2202102e200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a105620012903800121052001410036029801200120053703900141d4ab04410020021050200241aa8c0441141034200120012903900137038001200141206a20032001280298011019200220012802202001280224102c200141186a2001280270220320012802742000280200220041cc88041010200141003602b801200120012903183703b0012002200141b0016a101e2000200020012802b8016a22004b0d04200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b8012001411e3602b401200141be8c043602b00120014180016a2200200141e0006a200141b0016a105920014190016a200010570c030b20014280800137029401200141a4b2043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f48c0410582001200141386a4104723602b801200141203602b401200141808d043602b00120014180016a22022000200310592000200210570c020b20014280800137029401200141a4b2043602900120014190016a2200102e200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341b88d0410582001200141386a4104723602b801200141203602b401200141c48d043602b00120014180016a22022000200310592000200210570c010b20014280800137029401200141a4b2043602900120014190016a2202102e200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a105620012903800121052001410036029801200120053703900141d4ab04410020021050200241e48d04411c1034200120012903900137038001200141306a20032001280298011019200220012802302001280234102c200141286a2001280270220320012802742000280200220041cc88041010200141003602b801200120012903283703b0012002200141b0016a101e2000200020012802b8016a22004b0d01200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b801200141293602b401200141808e043602b00120014180016a2200200141e0006a200141b0016a105920014190016a200010570b200141b8016a20014198016a280200360200200120012903900122053703b001200141a0016a2802002100200128029c012103200141003602980120012005370390010240024002400240024002400240024002400240200128023841016b0e080102030405060708000b20014190016a220241001031200141386a4104722002101e200141dc006a280200200210180c080b20014190016a220241011031200128023c20021018200141406b28020020021018200141c8006a280200200141cc006a280200200210500c070b20014190016a220241021031200128023c20021018200141406b28020020021018200141c8006a280200200141cc006a280200200210500c060b20014190016a220241031031200128023c20021018200141406b280200200210180c050b20014190016a220241041031200128023c200210180c040b20014190016a220241051031200128023c200210182002200141406b2d000010310c030b20014190016a220241061031200128023c200210182002200141406b2d000010310c020b20014190016a220241071031200128023c200210180c010b20014190016a220241081031200128023c20021018200141406b2002101e0b20012001290390013703b0012001200141b0016a20012802980110192003200020012802002001280204100620012802381a200141c0016a24000f0b41a08104411c41dc88041013000b0d002000200120024119108d010b5301037f230041106b2202240020012802082203200128020422044b04402003200441e0ad04104a000b200241086a2003200420012802001088012000200229030837020020004100360208200241106a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b0d002000200120024116108d010bf90102037f017e230041d0006b22032400200341106a22052001105620032903102106200341003602282003200637032020022802002002280204200341206a2204105020022802082802002004101820032003290320370310200341086a20052003280228101920042003280208200328020c102c20032001280200220520012802042001280208220241cc8804101020034100360248200320032903003703402004200341406b101e2002200220032802486a22044b044041a08104411c41dc88041013000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b0d002000200120024118108d010b3501017f230041106b22002400200042808001370204200041a4b204360200200041011031200010304101200028020810491060000b4c01017f230041106b22022400200242808001370204200241a4b2043602002002410010312002200141ff0171410747047f20024101103120010541000b10312000200228020810491060000bef0201047f230041d0006b2203240020034100360218200342808001370224200341a4b2043602202001200341206a2204104d20022004101820032003290320370310200341086a200341106a20032802281019200328020c21022003280208210520032802102101200320032802142206360220200520022001200410002102200320032802202001200641a4870410140240024002400240410c20022002410c4f1b0e0402010100010b200041003a00000c020b2003412c6a4101360200200341346a4100360200200341b48804360228200341d4ab0436023020034100360220200341206a41bc8804101a000b200328020021012003200328020436024c20032001360248200341206a200341c8006a103220032d00200440200041023b00000c010b20002003290021370001200041196a200341396a290000370000200041116a200341316a290000370000200041096a200341296a290000370000200041013a00000b200341d0006a24000bf70102067f017e230041306b2201240020014100360218200142808001370224200141a4b2043602204100200141206a2202101820012001290320370310200141086a200141106a20012802281019200128020c210420012802082105200129031021072001410036022820012007370320200028020020021018200041086a28020021062000410c6a28020022032002102f200341ffffffff0371200347044041a08404412141c885041013000b200141206a2202200620034102741034200041106a2002101e200120012903203703102001200141106a20012802281019200520042001280200200128020410071a200141306a24000b6601017f230041306b2202240020024100360218200242808001370224200241a4b2043602202000200241206a2200104d20012000101820022002290320370310200241086a200241106a200228022810192002280208200228020c10081a200241306a24000b0d00200041a4b20420011009000bb14902137f017e230041b0036b22002400027f02400240103741ff017141054604402000418080013602900241a4b20420004190026a22011002200041c0016a20002802900241a4b2044180800141a487041014200020002903c00137038003200041003602900220004180036a2001410410110d012000280290022206411876210120064110762102200641087621050240027f02400240024002400240027f0240024002400240024002400240024002400240200641ff0171220641d9006b0e03011309000b20064108460d0520064110460d0b2006411c460d06200641d200460d01200641f100470440200641fd00460d082006418901460d042006419901470440200641a501460d04200641cb01470440200641d301460d0d200641dc01460d07200641fb0147200541ff01714189014772200241ff0171413647200141e4004772720d15410621070c160b200541ff017141fe0147200241ff017141fb014772200141ec0147720d14200041e8006a20004180036a100e20002802680d14200028026c2203410876210a41000c160b200541ff017141f20047200241ff0171410c47722001411e47720d13200041f0006a20004180036a100e20002802700d1320002802742203410876210a41010c0a0b200541ff01712203413c460d10200341cc0147200241ff017141f90047722001418d0147720d1220004190026a20004180036a1021200028029802220b450d1220002f00910220002d00930241107472210a200028029c02210920002d009002210341072107200028029402220841807e710c140b200541ff017141d80147200241ff017141c7004772200141e90147720d11200041f8006a20004180036a100e20002802780d11200028027c2203410876210a41030c080b200541ff017141d50047200241ff017141054772200141e40147720d1020004188016a20004180036a100e2000280288010d10200028028c01210320004180016a20004180036a100e2000280280010d102003410876210a41042107200028028401220841807e710c120b200541ff017141cf0147200241ff0171412447722001413e47720d0f410521070c100b200541ff0171412f47200241ff017141f5004772200141e40147720d0e20004190026a20004180036a1021200028029802220b450d0e20002f00910220002d00930241107472210a200028029c02210920002d009002210341082107200028029402220841807e710c100b200541ff017141a70147200241ff017141a60147722001410f47720d0d20004190016a20004180036a100e2000280290010d0d2000280294012203410876210a41090c040b200541ff0171410247200241ff017141e7004772200141c00047720d0c410a21070c0d0b200541ff017141d00147200241ff01714196014772200141f60047720d0b20004198016a20004180036a100e2000280298010d0b200028029c01210320004180036a101b41ff017122084102460d0b2003410876210a410b0c080b2001200541ff017141de0047200241ff017141ea014772720d0a200041a8016a20004180036a100e20002802a8010d0a20002802ac012103200041a0016a20004180036a100d20002d00a0014101710d0a4102210820002d00a1010e0206050a0b200541ff0171412347200241ff017141980147722001410f47720d09200041b0016a20004180036a100e20002802b0010d0920002802b4012203410876210a410d0b210741000c0a0b200541ff017141b90147200241ff0171413447720d0720014103460d010c070b200541ff017141fe0047200241ff017141334772200141ea0147720d06200041b8016a20004180036a100e20002802b8010d0620002802bc01210320004190026a20004180036a103220002d0090020d06200041e8016a200041a5026a290000370300200041f0016a200041ad026a28000036020020002000419d026a2900003703e0012003410876210a20004199026a2800002109200028009502210b410f2107200028009102220841807e710c080b20004190026a20004180036a103220002d0090020d052000200041a4026a2902003703e0012000200041a9026a2900003700e5012000280294022203410876210a200041a0026a28020021092000419c026a280200210b20002f019202210c20002d009102210e410e210720004198026a280200220841807e710c070b20004180036a101b41ff017122014102460d04200141017121080b2003410876210a410c0b210741000c040b200241ff017141a201472001413247720d0120004190026a20004180036a103220002d0090020d012000200041a4026a2902003703e0012000200041a9026a2900003700e5012000280294022203410876210a200041a0026a28020021092000419c026a280200210b20002f019202210c20002d009102210e4102210720004198026a280200220841807e710c030b200041043a00900220004190026a104b000b105b000b41000b210d200041d8016a200041f0016a280200360200200041d0016a200041e8016a290300370300200020002903e0013703c801200041003602880320004280800137029402200041a4b20436029002410020004190026a22021018200020002903900237038003200041e0006a20004180036a2000280298021019200028026421052000280260210620002802800321012000200028028403220436029002200620052001200210002102200041d8006a2000280290022001200441a4870410140240024002400240024002400240024002400240024002400240024002400240027f02400240024002400240410c20022002410c4f1b0e0400030301030b200028025c2101200020002802583602e002200020013602e402200041d0006a200041e0026a100e024020002802500d002000280254210120004190026a200041e0026a10532000280294022202450d002000280298022104200028029002210520004190026a200041e0026a103220002d009002450d022005200210390b2000419c026a4101360200200041a4026a41003602002000419c8f04360298020c100b2000419c026a4101360200200041a4026a4100360200200041bc8f04360298020c0f0b200341ff0171200a41087472210620004188026a200041a9026a29000037030020004180026a200041a1026a290000370300200041f8016a20004199026a29000037030020002000290091023703f001200020043602ec01200020023602e80120002001ad22132005ad422086843703e001200041f0016a2103024002400240024002400240024002400240200741016b0e0f010203040c0d050607101514131211000b20004180036a2006101f2000419c026a20004188036a2802003602002000200029038003370294022000410036029002230041106b22012400200142808001370204200141a4b204360200024020004190026a2202280200450440200141001031200241086a28020022034504402001410010310c020b20014101103120032002410c6a280200200110270c010b200141011031200110300b0c190b20004180036a22022006104120004190026a220141017220024121100a1a200041003a009002230041106b22022400200242808001370204200241a4b204360200024020012d000045044020024100103120012d00014504402002410010310c020b200241011031200141026a2002101e0c010b200241011031200210300b4100200228020810491060000b200041a8026a20002900cd013700002000200936009f022000200b36009b0220002006360093022000200c3b0091022000200e3a009002200020002903c8013700a3022000200d200841ff01717236009702230041306b22012400200141286a20004190026a220241186a290000370300200141206a200241106a290000370300200141186a200241086a29000037030020012002290000370310200141086a200141106a104020002001290308370300200141306a24002000280200210220002802042103230041106b22012400200142808001370204200141a4b204360200200141001031024020024504402001410010310c010b2001410110312003200110180b0c170b2006101741ff01712101200041003a009002200020013a009102230041106b22012400200142808001370204200141a4b204360200024020004190026a22022d000045044020014100103120022d000141024604402001410010310c020b200141011031200241016a200110250c010b200141011031200110300b0c160b20004190026a2006101f2000280294022201450d0520002802980221022000200028029002360290022000200136029c0220002001200241047422056a220636029802027f0240027f024020020440200d200841ff017172210420004190026a41047221030340200020012802082202360280032002450d02200420012902002213a7460d04200141106a2101200541106b22050d000b0b200020063602940220004180036a210341000c010b200141106a0b210120032001360200410021024100210441030c010b2000200141106a360294022013422888a72104200128020c21012013422088a70b210520004190026a10472002450c060b20004180036a1035200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220320004188036a2205290300370300200020002903800337039002200041186a20004190026a101d410021010240027f024002402000280218450d00200028021c2102200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020032005290300370300200020002903800337039002200041e0026a20004190026a106220002d00e002210120002802e4022203450d00200020002d00e3023a00c302200020002f00e1023b00c102200020002802e8023602c802200020033602c402200020013a00c002200041106a20091052200028021021032000280214200b2009100a21044104210120094180014d0440200041e0026a20002802c40220002802c8021051200020002802e402220136029c02200020002802e002360290022000200120002802e802220741047422056a220a3602980202402007044020004190026a410472210c03402000200128020822073602e0022007450d0520012802002006460d02200141106a2101200541106b22050d000b0b2000200a36029402200041e0026a210c41000c040b2000200141106a3602940220004190026a1047410221010b200041c0026a10230b41012102200141ff01714107460d020c160b200141106a0b2101200c200136020020004190026a220110472000419c026a2205200936020020004198026a2207200436020020002003360294022000200636029002200041c0026a220320011022200220002802c40220002802c8021026200041a4026a2009360200200041a0026a200b3602002005200d200841ff017172360200200720063602002000200236029402200041013602900220011054200310230b20004190026a2201200041e0016a4130100a1a2001105e41072101410021020c130b20004180036a1035200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220220004188036a2205290300370300200020002903800337039002200041286a20004190026a101d4100210102402000280228450d00200028022c2103200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020022005290300370300200020002903800337039002200041e0026a20004190026a106220002d00e002210120002802e4022205450d00200020002d00e3023a00c302200020002f00e1023b00c102200020002802e80222073602c802200020053602c402200020013a00c002200041206a200910522000280220210e2000280224200b2009100a210f024020094180014d0440200041e0026a20002802c402221020002802c80222111051200020002802e402220a36029c02200020002802e002360290022000200a20002802e802220141047422126a220c36029802027f024002402001450d00410021014100210403402001200a6a220241086a280200044020022802002006460d03200441016a21042012200141106a2201470d010c020b0b200241106a210c0b2000200c360294024100210541030c010b2000200241106a36029402200420074f0d05200120056a220120063602002001410c6a2009360200200141086a200f360200200141046a200e3602004101210541070b210120004190026a10472005450d012003201020111026200041a4026a2009360200200041a0026a200b3602002000419c026a200d200841ff01717236020020004198026a20063602002000200336029402200041023602900220004190026a1054200041c0026a10230c120b410421010b200041c0026a10230b41012102200141ff01714107460d0f0c120b20004180036a1035200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220120004188036a2202290300370300200020002903800337039002200041306a20004190026a101d2000280230047f20002802342108200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020012002290300370300200020002903800337039002200041e0026a20004190026a106220002d00e002210120002802e4022202450d07200020002d00e3023a00c302200020002f00e1023b00c102200020023602c402200020013a00c002024020002802e80222040440410021052002210103402006200128020046044041012103200541016a2201044020012004470440034002402006200220014104746a2205280200460440200141016a2201450d1a200341016a22030d0141a08104411c41e885041013000b200120034f04402002200120036b4104746a22072005290200370200200741086a200541086a290200370200200141016a22010d0141a08104411c418886041013000b41808004412141f885041013000b20012004470d000b0b024020034100200320044b1b450440200320044d0d0141808004412141cc81041013000b41808004412141bc81041013000b2000200420036b22013602c8022003450d04200820022001102620004198026a20063602002000200836029402200041033602900220004190026a1054200041c0026a10230c0d0b0c150b200141106a21012004200541016a2205470d000b0b200020043602c8020b200041c0026a102341030541000b2101410121020c110b2004200741a889041063000b2000419c026a4101360200200041a4026a4100360200200041b4880436029802200041d4ab043602a002200041003602900220004190026a41bc8804101a000b41002104410121054100210241010b21032000419c026a200136020020004198026a200236020020004100360290022000200541ff017120044108747236029402230041106b22012400200142808001370204200141a4b204360200024020004190026a2202280200450440200141001031200241086a2802002205044020014100103120052002410c6a280200200110500c020b200141011031200120022d000410310c010b200141011031200110300b0c0f0b20004190026a210923004190016b22042400200441d8006a200041e0016a220241086a2802002002410c6a28020010382004280258210320042802602105200428025c2101200420023602502004200136024c2004200120054102746a3602482004200136024420042003360240200441386a200441406b101602400240024002400240024020042d003c220241024604402009410036020820094280808080c0003702002004280240200428024c10390c010b20042802382103200441306a4104103a20042802342205450d01200428023022014100480d01200441286a20012005103b20042802282208450d02200820024101713a000420082003360200200441e8006a200441d0006a280200360200200441e0006a200441c8006a29030037030020042004290340370358200441206a200441d8006a1016024020042d00242206410246044041042102410121030c010b20042802202107410421014101210503402006410171210b200541016a220345210a024020012005470440200820054103746a2202200b3a000420022007360200200a0d08200121020c010b027f200a0440417f21022003210641000c010b200120016a22022001490d07200441186a410420022003200220034b1b2202200241044d1b2202103a200428021c210520042802182106200441106a2001103a20042008360280012004200429031037028401200441f0006a2006200520044180016a103c2004280270450440200428027421084181808080780c010b200428027421062001210220042802780b210520062005103d200820014103746a2201200b3a000420012007360200200a0d070b200441086a200441d8006a101620042802082107200221012003210520042d000c22064102470d000b0b2004280258200428026410392009200336020820092008360204200920023602000b20044190016a24000c040b103e000b2001103f000b41a084044121418492041013000b41a08104411c419886041013000b20002802940221022000280298022103230041106b22012400200142808001370204200141a4b20436020002402002044020014100103120032001102f2003450d01200220034103746a21030340200228020020011018200241046a20011025200241086a22022003470d000b0c010b200141011031200110300b0c0d0b20004180036a1035200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220220004188036a2203290300370300200020002903800337039002200041086a20004190026a101d200020002802082205410146047e42810c05200041003602e80220004280808080c0003703e0022001410441001026200041a8026a20004198036a2206290300370300200041a0026a20004190036a22042903003703002002200329030037030020002000290380033703900220004190026a22022001102a200120004180036a10282000200141016a2208417f20081b3602e001200041ac026a2006290300370200200041a4026a20042903003702002000419c026a2003290300370200200041b4026a2001360200200020002903800337029402200041003602900220021054200041e0026a10232002200041e0016a4130100a1a2002105e201342208642800c840b3703900220054101462103230041106b22012400200142808001370204200141a4b204360200024020004190026a22022d00002205410247044020014100103120054504402001410010312002280204200110180c020b200141011031200120022d000110310c010b200141011031200110300b0c0d0b41012102200141ff01714107470d0a0b20004190026a2201200041e0016a4130100a1a2001105e41072101410021020c090b20004180036a1035200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220220004188036a2203290300370300200020002903800337039002200041386a20004190026a101d20002802382205047f200028023c2101200041a8026a20004198036a290300370300200041a0026a20004190036a2903003703002002200329030037030020002000290380033703900220004190026a2202102b41e481042001105f41ec81042001105f20004104360290022000200136029402200210542002200041e0016a4130100a1a2002105e41070541000b21012005452001105c000b200041d4026a200041d0016a290300370200200041dc026a200041d8016a280200360200200020093602c8022000200b3602c402200020002903c8013702cc022000200d200841ff0171723602c002200041e0026a103520004190026a41dc81042006105d20002d009002410247044020004180036a20004190026a4121100a1a200041a9026a200041f8026a290300370000200041a1026a200041f0026a29030037000020004199026a200041e8026a290300370000200020002903e0023700910241012105200041013a00900220002d008003044020004180036a41017220004190026a410172106441017321050b20004190026a20061041027f027f20002d009002044020004198036a200041a9026a29000037030020004190036a200041a1026a29000037030020004188036a20004199026a2900003703002000200029009102370380034100200520004180036a200041e0026a1064410173710d011a200041a8026a200041d8026a290300370300200041a0026a200041d0026a29030037030020004198026a200041c8026a290300370300200020002903c00237039002200041c8006a20004190026a1040410620002802484101460d011a200041a8026a220220004198036a290300370300200041a0026a220320004190036a29030037030020004198026a220520004188036a29030037030020002000290380033703900220004190026a2201102b2002200041d8026a2903003703002003200041d0026a2903003703002005200041c8026a290300370300200020002903c0023703900220012006102a2006200041c0026a10282001200041e0016a4130100a1a2001105e4107210141000c020b41000b210141010b2001105c000b200020002d0091023a00a7032000418c036a410136020020004194036a4101360200200041908204360288032000410036028003200041013602ac032000200041a8036a360290032000200041a7036a3602a80320004180036a41808304101a000b200041f8026a20002900cd01370000200020093600ef022000200b3600eb02200020063600e3022000200c3b00e1022000200e3a00e002200020002903c8013700f3022000200d200841ff0171723600e70220004180036a1035200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220120004188036a290300370300200020002903800337039002200041406b20004190026a101d20002802402202047f41dc810420002802442203200041e0026a1029200041a8026a200041f0026a290300370300200041b0026a200041f8026a2903003703002000410836029002200120002903e002370300200041a0026a200041e8026a290300370300200020033602940220004190026a220110542001200041e0016a4130100a1a2001105e41070541000b21012002452001105c000b20004180036a2205103541002101024002402005200310640440410321012006101741ff01714102470d010b410121070c010b41e081042006105f410021074100210302402004450d00410021052002210103402006200128020046044041012103200541016a2201044020012004470440034002402006200220014102746a2802002205460440200141016a2201450d0d200341016a22030d0141a08104411c41e885041013000b200120034f04402002200120036b4102746a2005360200200141016a22010d0141a08104411c418886041013000b41808004412141f885041013000b20012004470d000b0b20034100200320044b1b450440200320044d0d0441808004412141cc81041013000b41808004412141bc81041013000b0c080b200141046a21012004200541016a2205470d000b0b2000200420036b3602ec01410721012000410736029002200020063602940220004190026a220210542002200041e0016a4130100a1a2002105e0b20072001105c000b20004180036a2202103541002101027f024020022003106404402006101741ff017122014102470d01410321010b41010c010b200020012008200841ff01714102461b41017122013a00e0022006200041e0026a102420004198026a20013a00002000200636029402200041063602900220004190026a220110542001200041e0016a4130100a1a2001105e4107210141000b2001105c000b200020083a00e00220004180036a22011035027f02400240200120031064220704402006200041e0026a102420042005460d010c020b41000c020b200041e0016a4104722103230041306b2201240002400240027f4100200541016a2202450d001a2003280200220520056a22042005490d01200141086a41042004200220022004491b2202200241044d1b22041042200128020c210220012802082109024020050440200341046a280200210a2001200510422001200a360220200120012903003702240c010b200141003602280b200141106a20092002200141206a103c20012802104504402001280214210220032004360200200341046a20023602004181808080780c010b20012802142102200141186a2802000b210320022003103d200141306a24000c010b41a084044121418492041013000b20002802e801210220002802ec0121040b200220044102746a200636020020002802ec0141016a220145044041a08104411c41c096041013000b200020013602ec0120004198026a20083a00002000200636029402200041053602900220004190026a220110542001200041e0016a4130100a1a2001105e41070b210120074101732001105c000b20004190026a2201200041e0016a4130100a1a2001105e41072101410021020c020b200041d4ab043602a002200041003602900220004190026a41e48e04101a000b41a08104411c41d885041013000b20022001105c000b4100200128020810491060000b2003200128020810491060000bb60101017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a101d024020022802080440200241106a200228020c101f2002280214220104402000200228021836020820002001360204200020022802103602000c020b20004100360204200041013a00000c010b20004100360204200041013a00000b200241306a24000b7501017f230041306b220324002003200136020420032000360200200341146a41023602002003411c6a41023602002003412c6a4105360200200341d4970436021020034100360208200341053602242003200341206a360218200320033602282003200341046a360220200341086a2002101a000b0b00200020014120100b450b9909010d7f23004180016b220024000240103741ff01712201410546044020004180800136025041a4b204200041d0006a22011002200041186a200028025041a4b2044180800141a487041014200020002903183703202000410036025002400240024002400240200041206a2001410410110d002000280250220141187621022001411076210320014108762105200141ff0171220141094704402001419b0147200541ff017141ae014772200341ff0171419d0147200241de004772720d01200041306a1035200041286a4204370300200042003703200c070b200541ff0171413547200341ff017141da014772200241880147720d00200041106a200041206a100c20002802100d0041012101200028022422022000280214220620022006491b22070440200041086a20071044200028020c2201450d05200028020822024100480d05200020022001103b20002802002201450d040b200041003602582000200136025420002007360250200604400340200041206a101b21032000280250210202400240200341ff01712209410247044020022004460d010c020b2002200028025410430c040b200041d0006a2103230041306b2201240002400240027f4100200441016a2202450d001a2003280200220520056a22082005490d01200141086a41082008200220022008491b2202200241084d1b22081044200128020c210220012802082104024020050440200341046a280200210720012005104420012007360220200120012903003702240c010b200141003602280b200141106a20042002200141206a103c20012802104504402001280214210220032008360200200341046a20023602004181808080780c010b20012802142102200141186a2802000b210320022003103d200141306a24000c010b41a084044121418492041013000b20002802542101200028025821040b200120046a20093a0000200028025841016a2204450d0320002004360258200641016b22060d000b20002802502107200028025421010b2001450d00200041d0006a200041206a10532000280254220a4504402007200110430c010b20042000280258470d022000280250210b200041d0006a200a20041038200028025421082000280250210c02402000280258220345200445720d00200441016b2102200341027441046b21062008210320012105034020032802002109200020052d00004101713a00502009200041d0006a10242006450d01200641046b2106200541016a2105200341046a21032002220941016b210220090d000b0b200c20081039200720011043200041306a10352000412c6a2004360200200041286a200a3602002000200b360224200041003602200c060b105b000b41a08104411c41c096041013000b200041dc006a4101360200200041e4006a4100360200200041809004360258200041d4ab0436026020004100360250200041d0006a41889004101a000b2002103f000b103e000b200020013a0050200041d0006a104b000b200041d0006a2201200041206a4130100a1a2001105e230041106b22012400200142808001370204200141a4b2043602002001410010312001410010314100200128020810491060000b5901017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41989004200241086a10672100200241206a240020000bf60301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1101000d040b200141086a21012004280200210020042802042106200441086a21042000200341186a2006110300450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1101000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a107d20032003290310370320200341086a2005200141046a107d20032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110300450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1101000d010b41000c010b41010b2101200341406b240020010b0f00200028020020012002106941000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a200020032002106c2004280208200428020c103d200028020821030b200028020420036a20012002100a1a2003200220036a22014b044041b09004411c41d096041013000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10690c020b230041106b22042400200441086a200020034101106c2004280208200428020c103d200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41b09004411c41c096041013000b5201017f230041206b2202240020002802002100200241186a200141106a290200370300200241106a200141086a290200370300200220012902003703082000200241086a10662100200241206a240020000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a103c20042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41d090044121418492041013000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d0440419cb204280200220220056a22042002490d0241a0b2042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d024100210341a0b2042004360200200220056a22042002490d030b419cb2042004360200200221030c020b4180ab04411c41ecaa041013000b410021030b20002001360204200020033602000be406020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441cb99046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441cb99046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441cb99046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441cb99046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b2102410021042005410471044041d4ab042104200241d4ab0441d4ab04107420026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a28020022012007200410770d01200220082006200128020c11010021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a2007200410770d02200341106a2001200920026b4101107820032802142202418080c400460d0220032802102104200520082006200a28020c1101000d02200420022005200a10790d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a28020022012007200410770d01200220082006200128020c11010021000c010b41012100200341086a2001200920026b41011078200328020c2205418080c400460d002003280208210920012802002202200141046a28020022012007200410770d00200220082006200128020c1101000d002009200520022001107921000b200341406b240020000f0b41e09604411c41949c041013000b41809704412141d8a8041013000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b2205240020022003490440200320022004104a000b200541086a2003200220011073200528020c21012000200528020836020020002001360204200541106a24000b1500200020012002200341b8b00441809704108a010ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d002001200010752206200020016a22082004417c716a200441037110756a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41f09f041076200328020c21052003280208210820032003280200200328020422002000417c714180a1041076200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41e09604411c4188a3041013000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441e09604411c41b8a3041013000b41e09604411c4198a3041013000b41e09604411c41a8a3041013000b41e09604411c41f8a2041013000b20012002107521020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41e09604411c41c8a8041013000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41fcab04412320041013000b39000240027f2002418080c40047044041012000200220012802101103000d011a0b20030d0141000b0f0b200020034100200128020c1101000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41e09604411c41a49c041013000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110300450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110300450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a4100200120021073200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041015000bee04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11010021000c020b41e09604411c41c8a4041013000b200b450440200128020020032004200128020428020c11010021000c010b2001410c6a2802002200200320046a2003107422024b0440200941086a2001200020026b4100107841012100200928020c2202418080c400460d01200928020821062001280200220520032004200141046a280200220128020c1101000d012006200220052001107921000c010b200128020020032004200128020428020c11010021000b200941106a240020000b140020002802002001200028020428020c1103000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b4d01017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a10672100200341206a240020000be808010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c200328027020032802741080010240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041b89d04107a200341c8006a20042003280250200328025410810120032802484101470d02200328024c21010c050b200341306a2004200120001081012003280234210120032802300c050b4180970441214180a7041013000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241e89d041072200341386a200420032802402003280244108101410020032802384101470d011a2002200328023c6a220120024f0d0041e09604411c41f89d041013000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b200210800120032802282202450d05200328022c2100200341206a20032802782009410441b0a704107a2002200020032802202003280224108201450d05200341186a200328026020032802702200200c10830120032000360260200328021c2102200328021821000c080b200320032802743602700c060b41e09604411c41c89d041013000b41e09604411c4190a7041013000b41e09604411c41a0a7041013000b41e09604411c41d89d041013000b200341106a2003280268200328026c2003280270200328027410800120032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a200420012003280268108301200328020c2102200328020821000b20000d010b41000c050b20082d0000450d01200741c498044104200628020c110100450d010c020b41809704412141d8a4041013000b2003410a36028c0120082002047f200320002002200241016b4190a10410722003418c016a4101200328020020032802041082010541000b3a0000200720002002200628020c110100450d010b0b41010b210220034190016a240020020b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011073200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b1801017f2001200346047f200020022001100b0541010b450b1500200020012002200341eca50441809704108a010b6001027f230041206b220224002001280204210320012802002101200241186a2000280200220041106a290200370300200241106a200041086a2902003703002002200029020037030820012003200241086a10672100200241206a240020000b0b0020002802002001107b0b1800200128020041ecb1044105200128020428020c1101000b990301037f230041406a22022400200028020021034101210002402001280200220441909804410c200141046a280200220128020c1101000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241a0980436023020024100360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a107e450d010c020b20032802002200200328020428020c110a0042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241a0980436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a107e0d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4105360200200241346a4105360200200241e897043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a107e21000b200241406b240020000b15002000200120022003419cab0441b0ab04108a010b1500200020012002200341b8b00441d0b004108a010b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041013000b3901017f230041106b22042400200441086a2003200220011048200428020c21012000200428020836020020002001360204200441106a24000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41053602002004200336021020044100360208200441053602242004200441206a3602182004200441046a36022820042004360220200441086a2002101a000bf80102037f017e230041d0006b22042400200441106a22062001105620042903102107200441003602282004200737032020022802002002280204200441206a22051050200520022802082003103420042004290320370310200441086a20062004280228101920052004280208200428020c102c20042001280200220620012802042001280208220241cc8804101020044100360248200420042903003703402005200441406b101e2002200220042802486a22054b044041a08104411c41dc88041013000b20012006360200200141086a22022005360200200041086a200228020036020020002001290200370200200441d0006a24000b0b9a320300418080040bd12b617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e352f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77c00a01007f0000005206000035000000c00a01007f00000059060000240000006dbd733339033e7900e945cab16cd67c3b605e7d4661696c656420746f206765742076616c756520696e204d617070696e673a20f0000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e727318010100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273000000900101006d0000009d00000011000000900101006d0000009d00000030000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f77000000e814010083000000c80100001e0000000a0000000100000001000000010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f627974652d736c6963652d636173742d312e322e322f7372632f6c69622e7273006402010063000000ea01000001000000c00a01007f0000006c06000015000000c00a01007f0000006d06000015000000c00a01007f0000007b0600003e000000c00a01007f0000007f06000011000000c00a01007f0000002b0b00001e000000c00a01007f000000c3080000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300380301006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000900101006d0000006b0100000e000000900101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72180401001c000000900101006d000000ed00000017000000301601006e000000c100000037000000301601006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f74797065732e727300006c0401003a0000002a0000000d0000004964656e746974793a3a4964656e7469747943726561746564000000d415010000000000b80401004964656e746974793a3a4964656e74697479437265617465643a3a6f776e65724964656e746974793a3a4164647265737341646465640000d415010000000000000501004964656e746974793a3a4164647265737341646465643a3a6964656e746974795f6e6f4964656e746974793a3a416464726573735570646174656400d415010000000000470501004964656e746974793a3a41646472657373557064617465643a3a6964656e746974795f6e6f4964656e746974793a3a4164647265737352656d6f766564000000d415010000000000910501004964656e746974793a3a4164647265737352656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a4964656e7469747952656d6f7665640000d415010000000000dd0501004964656e746974793a3a4964656e7469747952656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a436861696e41646465644964656e746974793a3a436861696e41646465643a3a636861696e5f69644964656e746974793a3a436861696e557064617465640000d4150100000000005c0601004964656e746974793a3a436861696e557064617465643a3a636861696e5f69644964656e746974793a3a436861696e52656d6f7665640000d415010000000000a00601004964656e746974793a3a436861696e52656d6f7665643a3a636861696e5f69644964656e746974793a3a5265636f766572794163636f756e745365744964656e746974793a3a5265636f766572794163636f756e745365743a3a6964656e746974795f6e6f2f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f6c69622e727300000029070100380000002700000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900740701002700000073746f7261676520656e7472792077617320656d70747900a4070100170000004561636820636861696e206e6565647320746f2068617665206120636f72726573706f6e64696e6720636861696e206964207370656369666965642ec40701003c0000002907010038000000c00000000d0000000a00000004000000040000000b0000000c0000000d000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000a00000000000000010000000e0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300840801007f0000008a0100001c0000006361706163697479206f766572666c6f770000001409010011000000840801007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c656400bd09010015000000d20901000d000000400901007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000330a01007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e727300c00a01007f000000300700000d000000c00a01007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320a20b010020000000c20b0100120000003a000000d415010000000000e40b010001000000e40b0100010000000a00000000000000010000000f00000070616e69636b65642061742027272c201c0c0100010000001d0c0100030000003a200000d415010000000000300c010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000930d01007e0000005d0500000d000000930d01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300340e0100830000004e0000002f000000340e0100830000005a0000001f000000340e0100830000006300000009000000340e0100830000006800000027000000340e010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820080f0100120000001a0f01002200000072616e676520656e6420696e646578204c0f0100100000001a0f0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e72730000006c0f010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72730010010080000000fe0300002f0000000010010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028a010010015000000b51001002b000000a10b0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273f8100100800000004700000015000000f8100100800000005400000011000000f8100100800000005a00000009000000f8100100800000006400000011000000f810010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300c81101007f0000009100000011000000c81101007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e72730000006812010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72730000fc12010082000000a101000047000000fc12010082000000b401000020000000fc12010082000000b401000011000000fc12010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273c01301008800000095000000010000004d0c01007e000000cd01000005000000d4150100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e727300e8140100830000002f0100001800000000000000617474656d707420746f206164642077697468206f766572666c6f77b517010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041e0ab040be504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290ad4150100000000001f160100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000301601006e0000005a0000001c000000301601006e0000005a00000009000000301601006e0000005a00000031000000301601006e0000006500000009000000301601006e000000830000001a000000301601006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f64652f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e727300b51701008200000082010000470041d0b0040bcb01617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e352f7372632f636f6465632e72730000007118010068000000770000000e0000004572726f72000000190000001c000000160000001400000019000000cf140100b31401009d14010089140100701401","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x9bae9d5e"},{"args":[{"label":"chains","type":{"displayName":["Vec"],"type":11}},{"label":"chain_ids","type":{"displayName":["Vec"],"type":7}}],"default":false,"docs":[],"label":"init_with_chains","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":8},"selector":"0x0935da88"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":34},"blockNumber":{"displayName":["BlockNumber"],"type":2},"chainExtension":{"displayName":["ChainExtension"],"type":37},"hash":{"displayName":["Hash"],"type":35},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":36}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which a new address has been added."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been updated."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["EncryptedAddress"],"type":3}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The chain on which the address has been removed."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`ChainId\` that is associated with the newly added chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The address type used on the chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":13}}],"docs":[],"label":"ChainAdded"},{"args":[{"docs":[" The \`ChainId\` that is associated with the updated chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The address type used on the updated chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":13}}],"docs":[],"label":"ChainUpdated"},{"args":[{"docs":[" The \`ChainId\` that is associated with the chain that got"," removed."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"ChainRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":10},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":14},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x713ca232"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the chain name that is associated with the specified \`ChainId\`."],"label":"chain_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x59d847e9"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":2}},{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified chain."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x525505e4"},{"args":[],"default":false,"docs":[" A list of all the available chains each associated with a \`ChainId\`."],"label":"available_chains","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":26},"selector":"0xa5cf243e"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":29},"selector":"0xfb893664"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Adds an address for a given chain"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x71cc798d"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":3}}],"default":false,"docs":[" Updates the address of the given chain"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x892f75e4"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Removes the address by chain"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x08026740"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"info","type":{"displayName":["ChainInfo"],"type":12}}],"default":false,"docs":[],"label":"add_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x1cd09676"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"new_address_type","type":{"displayName":["Option"],"type":33}}],"default":false,"docs":[],"label":"update_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x7d5eea00"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[],"label":"remove_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x5b23980f"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":2}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":5}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":2}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":5}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":2}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"enum":{"dispatchKey":"0x793e0339","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"ChainInfo"}},"root_key":"0x793e0339"}},"name":"chain_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":7}},"name":"chain_ids"},{"layout":{"leaf":{"key":"0x00000000","ty":5}},"name":"admin"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,3]}}},{"id":2,"type":{"def":{"primitive":"u32"}}},{"id":3,"type":{"def":{"sequence":{"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":7,"type":{"def":{"sequence":{"type":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":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":11,"type":{"def":{"sequence":{"type":12}}}},{"id":12,"type":{"def":{"composite":{"fields":[{"name":"account_type","type":13,"typeName":"AccountType"}]}},"path":["common","types","ChainInfo"]}},{"id":13,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"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":16}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":16}],"path":["Option"]}},{"id":16,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(ChainId, EncryptedAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"fields":[{"type":18}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":18},{"name":"E","type":10}],"path":["Result"]}},{"id":18,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":10}],"path":["Result"]}},{"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":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":10}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":12}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":12}],"path":["Option"]}},{"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":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidChain"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"ChainNameTooLong"},{"index":6,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"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":{"sequence":{"type":28}}}},{"id":28,"type":{"def":{"tuple":[2,12]}}},{"id":29,"type":{"def":{"variant":{"variants":[{"fields":[{"type":30}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":30},{"name":"E","type":10}],"path":["Result"]}},{"id":30,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":25}],"path":["Result"]}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":10}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":25}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":25}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":13}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":13}],"path":["Option"]}},{"id":34,"type":{"def":{"primitive":"u128"}}},{"id":35,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":36,"type":{"def":{"primitive":"u64"}}},{"id":37,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file +export const ContractAbi = `{"source":{"hash":"0xa314728786fa75f828cea8977697df9bccffffb2754ca7d1aab686a227c25f97","language":"ink! 4.3.0","compiler":"rustc 1.68.0-nightly","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x9bae9d5e"},{"args":[{"label":"chains","type":{"displayName":["Vec"],"type":13}},{"label":"chain_ids","type":{"displayName":["Vec"],"type":9}}],"default":false,"docs":[],"label":"init_with_chains","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x0935da88"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":7},"balance":{"displayName":["Balance"],"type":36},"blockNumber":{"displayName":["BlockNumber"],"type":3},"chainExtension":{"displayName":["ChainExtension"],"type":39},"hash":{"displayName":["Hash"],"type":37},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":38}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":7}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"docs":[" The chain on which a new address has been added."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["EncryptedAddress"],"type":5}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"docs":[" The chain on which the address has been updated."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["EncryptedAddress"],"type":5}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"docs":[" The chain on which the address has been removed."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`ChainId\` that is associated with the newly added chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The address type used on the chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainAdded"},{"args":[{"docs":[" The \`ChainId\` that is associated with the updated chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The address type used on the updated chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainUpdated"},{"args":[{"docs":[" The \`ChainId\` that is associated with the chain that got"," removed."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"ChainRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":7}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":12},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x713ca232"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the chain name that is associated with the specified \`ChainId\`."],"label":"chain_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x59d847e9"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":3}},{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified chain."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":25},"selector":"0x525505e4"},{"args":[{"label":"network","type":{"displayName":["Network"],"type":4}}],"default":false,"docs":[" A list of all the available chains each associated with the associated"," \`ChainId\`."],"label":"available_chains","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0xa5cf243e"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xfb893664"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":5}}],"default":false,"docs":[" Adds an address for a given chain"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x71cc798d"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":5}}],"default":false,"docs":[" Updates the address of the given chain"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x892f75e4"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Removes the address by chain"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x08026740"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"info","type":{"displayName":["ChainInfo"],"type":14}}],"default":false,"docs":[],"label":"add_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x1cd09676"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"new_address_type","type":{"displayName":["Option"],"type":35}}],"default":false,"docs":[],"label":"update_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x7d5eea00"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[],"label":"remove_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x5b23980f"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":7}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":3}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":7}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":3}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"enum":{"dispatchKey":"0x793e0339","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"ChainInfo"}},"root_key":"0x793e0339"}},"name":"chain_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":9}},"name":"chain_ids"},{"layout":{"leaf":{"key":"0x00000000","ty":7}},"name":"admin"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,5]}}},{"id":2,"type":{"def":{"tuple":[3,4]}}},{"id":3,"type":{"def":{"primitive":"u32"}}},{"id":4,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Polkadot"},{"index":1,"name":"Kusama"}]}},"path":["common","types","Network"]}},{"id":5,"type":{"def":{"sequence":{"type":6}}}},{"id":6,"type":{"def":{"primitive":"u8"}}},{"id":7,"type":{"def":{"composite":{"fields":[{"type":8,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":8,"type":{"def":{"array":{"len":32,"type":6}}}},{"id":9,"type":{"def":{"sequence":{"type":2}}}},{"id":10,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":12}],"path":["Result"]}},{"id":11,"type":{"def":{"tuple":[]}}},{"id":12,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":13,"type":{"def":{"sequence":{"type":14}}}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"account_type","type":15,"typeName":"AccountType"}]}},"path":["common","types","ChainInfo"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":12}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":18}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":18}],"path":["Option"]}},{"id":18,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(ChainId, EncryptedAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":12}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":7}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":7}],"path":["Option"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":12}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":3}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":3}],"path":["Option"]}},{"id":23,"type":{"def":{"variant":{"variants":[{"fields":[{"type":24}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":24},{"name":"E","type":12}],"path":["Result"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"fields":[{"type":26}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":26},{"name":"E","type":12}],"path":["Result"]}},{"id":26,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":27}],"path":["Result"]}},{"id":27,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidChain"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"ChainNameTooLong"},{"index":6,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"id":28,"type":{"def":{"variant":{"variants":[{"fields":[{"type":29}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":29},{"name":"E","type":12}],"path":["Result"]}},{"id":29,"type":{"def":{"sequence":{"type":30}}}},{"id":30,"type":{"def":{"tuple":[3,14]}}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":12}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":27}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":12}],"path":["Result"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":27}],"path":["Result"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":36,"type":{"def":{"primitive":"u128"}}},{"id":37,"type":{"def":{"composite":{"fields":[{"type":8,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":38,"type":{"def":{"primitive":"u64"}}},{"id":39,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; +export const ContractFile = `{"source":{"hash":"0xa314728786fa75f828cea8977697df9bccffffb2754ca7d1aab686a227c25f97","language":"ink! 4.3.0","compiler":"rustc 1.68.0-nightly","wasm":"0x0061736d01000000014e0d60027f7f0060037f7f7f017f60037f7f7f0060027f7f017f60047f7f7f7f0060017f0060057f7f7f7f7f0060047f7f7f7f017f60000060017f017f60017f017e6000017f60067f7f7f7f7f7f0002dd010b057365616c310b6765745f73746f726167650007057365616c301176616c75655f7472616e736665727265640000057365616c3005696e7075740000057365616c300663616c6c65720000057365616c300d64656275675f6d6573736167650003057365616c300f686173685f626c616b65325f3235360002057365616c300d6465706f7369745f6576656e740004057365616c320b7365745f73746f726167650007057365616c310d636c6561725f73746f726167650003057365616c300b7365616c5f72657475726e000203656e76066d656d6f727902010210038801860101010000000106010004020602000002000000050300000003020900020002020002050206050005000000000205060b0000020000050000000004090205030003080500020004020200000502000002020202080002050000080002030803010102030304020305030a0604030306070407060303020101060407040303030304040c040404040501700110100608017f01418080040b0711020463616c6c0063066465706c6f7900670919010041010b0f1e7e7d487089017286018701716a6c6d8801730a80f40186012b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b9f0201037f230041206b22022400200241086a2001100d41012103024020022d00084101710d000240024002400240024020022d0009220441037141016b0e03030201000b200441fc01714102762101410021030c040b200441034b0d0320022001100e20022802000d03200228020422014180808080044921030c030b200220043a0015200241013a0014200220013602102002410036021c200241106a2002411c6a4104100f450d010c020b200220043a0015200241013a001420022001360210200241003b011c200241106a2002411c6a4102100f0d0120022f011c220441ff014d0d0120044102762101410021030c010b200228021c220141808004492103200141027621010b2000200136020420002003360200200241206a24000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110112201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4801027f230041106b220224002002410036020c024020012002410c6a41041011450440200228020c21010c010b410121030b2000200136020420002003360200200241106a24000b6e01027f230041106b2203240020002f01042104200041003a0004027f20044101710440200120044108763a000020002802002100200341086a200120024101418c8104101020002003280208200328020c10110c010b20002802002001200210110b2100200341106a240020000b4a01017f230041106b22052400200220034904402003200220041046000b200541086a2003200220011013200528020c21012000200528020836020020002001360204200541106a24000b6201047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206108b01200120022003280208200328020c41dcb004102e2003200220042006108b01200020032903003702000b200341106a240020050b4c02017f017e0240200128020422022001280208460440410221010c010b2001200241086a36020420022902002203422088a741017121012003a721020b200020013a0004200020023602000b15002000200120022003419caa0441808004108c010b5001017f230041206b220324002003410c6a4101360200200341146a4100360200200341d4aa04360210200341003602002003200136021c200320003602182003200341186a36020820032002101f000b4b01017f230041106b22052400200120034d0440200541086a4100200120021013200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041016000b0f0020002001200241dc9d04108e010bc50401067f230041f0006b220224002002410036022020024280800137025c200241a4b10436025841bbc0f9ea07200241d8006a2206101820012006101820022002290358370318200241106a200241186a200228026010192002280214210320022802102105200228021821012002200228021c2207360258200520032001200610002103200241086a20022802582001200741a086041015024002400240410c20032003410c4f1b0e0400020201020b200228020c2101200220022802083602282002200136022c2002200241286a100c024020022802000d00200241306a200228022c41146e220320022802042201200120034b1b101a024020010440200241406b4105722103200241d8006a41057221040340200241d8006a200241286a101b20022d005c22054102460d0220032004290000370000200341076a200441076a290000370000200220053a004420022002280258360240200241306a200241406b101c200141016b22010d000b0b20022802342204450d0120022802382101200228023021030c020b200241306a101d0b200241003a0030200241e4006a4101360200200241ec006a41013602002002418c820436026020024100360258200241013602442002200241406b3602682002200241306a360240200241d8006a41fc8204101f000b200020013602082000200436020420002003360200200241f0006a24000f0b200241e4006a4101360200200241ec006a4100360200200241b08704360260200241d4aa0436026820024100360258200241d8006a41b88704101f000b2601017f230041106b220224002002200036020c20012002410c6a41041036200241106a24000b4501017f2002200128020422034b044041fcaa04412341f0ac041014000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b7101037f230041106b220224000240024002402001450440410421030c010b200241086a2001103e200228020c2203450d01200228020822044100480d0120042003104a2203450d020b200041003602082000200336020420002001360200200241106a24000f0b104b000b2004104c000bad0101057f230041206b22022400200241186a20011034024020022d001c2204410247044020022802182105200241106a2001100c024020022802100d002002280214220320012802044b0d00200241086a20031035200228020821062001200228020c2201200310110d00200020033600102000200136000c2000200636000820002005360200200020044101713a00040c020b200041023a00040c010b200041023a00040b200241206a24000be20201067f200028020822032000280200460440230041306b2202240002400240027f4100200341016a2203450d001a2000280200220420046a22052004490d01200241086a41042005200320032005491b2203200341044d1b2205103e200228020c210320022802082106024020040440200041046a280200210720022004103e20022007360220200220022903003702240c010b200241003602280b200241106a20062003200241206a105020022802104504402002280214210320002005360200200041046a20033602004181808080780c010b20022802142103200241186a2802000b210420032004104f200241306a24000c010b41a084044121418491041014000b200028020821030b2000280204200341146c6a22022001290200370200200241086a200141086a290200370200200241106a200141106a280200360200200341016a220145044041a08104411c41c095041014000b200020013602080b11002000280200200041046a280200103d0bb80401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280200220341afae0441062001280204220528020c22041101000d0c024020012d0018410471450440200341cc9704410120041101000d0e200341ecb00441052004110100450d010c0e0b200341ca9704410220041101000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241ecb00441051081010d0d200241c8970441021081010d0d0b200341a196044101200411010021000c0c0b200128020041a2ae04410d200128020428020c11010021000c0b0b20012802004194ae04410e200128020428020c11010021000c0a0b20012802004189ae04410b200128020428020c11010021000c090b200128020041efad04411a200128020428020c11010021000c080b200128020041e1ad04410e200128020428020c11010021000c070b200128020041d1ad044110200128020428020c11010021000c060b200128020041c5ad04410c200128020428020c11010021000c050b200128020041baad04410b200128020428020c11010021000c040b200128020041b3ad044107200128020428020c11010021000c030b200128020041a4ad04410f200128020428020c11010021000c020b20012802004193ad044111200128020428020c11010021000c010b20012802004180ad044113200128020428020c11010021000b200241106a240020000be10201017f230041206b22022400200241013a0018200220013602142002200036021020024180970436020c200241d4aa04360208230041406a220124002001200241086a36020c2001410636022420012001410c6a360220410021004104210202400240024002400240034020002000200241a0ab046a2802006a22004b0d01200241086a22024114470d000b2001200041104f047f200020006a22024100200020024d1b0541000b105320014100360218200120012903003703102001410136023c20014102360234200141a0ab04360230200141003602282001200141206a360238200141106a200141286a10680d0141a4b1052d000045044041a5b1052d00004101710d050b410c20012802142001280218100422002000410c4f1b4109470d020c030b41b08f04411c41c8a7041014000b418093044133200141286a41f48f0441b094041038000b41a4b10541013a00000b41a5b10541013a00000b000be40301067f230041f0006b220224002002413c6a200141186a290000370200200241346a200141106a2900003702002002412c6a200141086a290000370200200241e88104360220200220012900003702242002410036025020024280800137025c200241a4b10436025841b1d9d9e607200241d8006a22051018200241206a4104722005102120022002290358370348200241186a200241c8006a20022802601019200228021c210320022802182106200228024821012002200228024c2207360258200620032001200510002103200241106a20022802582001200741a08604101502402000027f024002400240410c20032003410c4f1b0e0402000001000b200241e4006a4101360200200241ec006a4100360200200241b08704360260200241d4aa0436026820024100360258200241d8006a41b88704101f000b41000c010b20022802142101200220022802103602582002200136025c200241086a200241d8006a100e20022802080d0141012104200228020c0b36020420002004360200200241f0006a24000f0b200241003a0057200241e4006a4101360200200241ec006a41013602002002418c8204360260200241003602582002410136024c2002200241c8006a3602682002200241d7006a360248200241d8006a41fc8204101f000b0a0020012000412010360bfe0201047f230041406a220224002002410036022020024280800137022c200241a4b10436022841b986f8c907200241286a22031018200020012003102320022002290328370318200241106a200241186a200228023010192002280214210120022802102104200228021821002002200228021c2205360228200420012000200310002101200241086a20022802282000200541a08604101502400240024002400240410c20012001410c4f1b0e0402000001000b200241346a41013602002002413c6a4100360200200241b08704360230200241d4aa0436023820024100360228200241286a41b88704101f000b410221010c010b200228020c2100200220022802083602282002200036022c200241286a102441ff017122014102460d010b200241406b240020010f0b200241003a0027200241346a41013602002002413c6a41013602002002418c8204360230200241003602282002410136021c2002200241186a3602382002200241276a360218200241286a41fc8204101f000b0e002000200210182002200110320b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0bff0102047f017e230041e0006b22022400200241346a200041186a2900003702002002412c6a200041106a290000370200200241246a200041086a290000370200200241e881043602182002200029000037021c20024100360248200242808001370254200241a4b10436025041b1d9d9e607200241d0006a22031018200241186a4104722003102120022002290350370340200241106a200241406b220420022802581019200228021421002002280210210520022903402106200241003602582002200637035020012003101820022002290350370340200241086a200420022802581019200520002002280208200228020c10071a200241e0006a24000bb20102037f017e230041306b2203240020034100360218200342808001370224200341a4b10436022041b986f8c907200341206a22041018200020012004102320032003290320370310200341086a200341106a220520032802281019200328020c210020032802082101200329031021062003410036022820032006370320200220041027200320032903203703102003200520032802281019200120002003280200200328020410071a200341306a24000b0b00200120002d000010320bb20102047f017e230041306b2203240020034100360218200342808001370224200341a4b10436022041bbc0f9ea07200341206a2204101820002004101820032003290320370310200341086a200341106a220520032802281019200328020c2100200328020821062003290310210720034100360228200320073703202001200220041029200320032903203703102003200520032802281019200620002003280200200328020410071a200341306a24000b4b00200120021030200104402000200141146c6a210103402000280200200041046a2d0000200210232000410c6a280200200041106a28020020021051200041146a22002001470d000b0b0b0c0041e4810420002001102b0bac0102037f017e230041306b2203240020034100360218200342808001370224200341a4b1043602202000200341206a2204104920012004101820032003290320370310200341086a200341106a220520032802281019200328020c210020032802082101200329031021062003410036022820032006370320200220041021200320032903203703102003200520032802281019200120002003280200200328020410071a200341306a24000bb20101017f230041d0006b22012400200141246a200041186a2900003702002001411c6a200041106a290000370200200141146a200041086a290000370200200141e881043602082001200029000037020c20014100360238200142808001370244200141a4b10436024041b1d9d9e607200141406b22001018200141086a41047220001021200120012903403703302001200141306a200128024810192001280200200128020410081a200141d0006a24000bcf0101077f230041306b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341286a22074200370300200341206a22084200370300200341186a220942003703002003420037031020012002200341106a1005200420072903003700002005200829030037000020062009290300370000200020032903103700000c010b200341086a20022000412041fc830410152003280208200328020c20012002418c8404102e0b200341306a24000b85010020012003460440200020022001100a1a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4105360200200041e0a00436021020004100360208200041053602242000200041206a360218200020003602282000200041046a360220200041086a2004101f000b7701047f230041206b22012400200141086a2000280200220320002802042000280208220241c88704101020014100360218200120012903083703104102200141106a10302002200220012802186a22044b044041a08104411c41d887041014000b2000200336020020002004360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410320c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210360c010b200041ffffffff034d04402000410274410272200110180c010b2001410310322000200110180b200241106a24000b08002000410110320b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341d0ac041065000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101145044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b5401037f230041106b22022400200241086a2001100e41022103200228020c210420002002280208047f41020541022001102441ff0171220141017120014102461b0b3a000420002004360200200241106a24000b5b01027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20012001417f73411f76106f200228020822030d012001104c000b104b000b2000200336020420002001360200200241106a24000b7a01047f230041106b2203240002402000280208220520026a220420054f04402004200028020422064b0d01200341086a200520042000280200108a012003280208200328020c2001200241c0ac04102e20002004360208200341106a24000f0b41e0aa04411c41a0ac041014000b2004200641b0ac041016000ba70101017f230041306b2201240020014180800136020041a4b1042001100320014180800136022c200141a4b1043602282001200141286a103320012d00000440200141003a000041b0860441c100200141d4840441f486041038000b20002001290102370001200041096a2001410a6a290100370000200041116a200141126a290100370000200041186a200141196a290000370000200020012d00013a0000200141306a24000b860101017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a41023602002005412c6a41023602002005413c6a4102360200200541b4970436022020054100360218200541033602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101f000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b6401017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a102020002002290308370300200241306a24000b910101017f230041d0006b22022400200241086a41e481042001105f20022d00084102460440200220022d00093a002f2002413c6a4101360200200241c4006a41013602002002418c8204360238200241003602302002410136024c2002200241c8006a36024020022002412f6a360248200241306a41fc8204101f000b2000200241086a4121100a1a200241d0006a24000ba00101047f20002002104d20002802002204200028020822034f044002402002452003200446720d00200120024103746a2106200028020420034103746a2105200320046b41016a2103034020012802002104200541046a200141046a2d00003a0000200520043602002003450d01200341016a2103200541086a2105200141086a22012006470d000b0b200020023602080f0b41808004412141a485041014000b2000230041106b2201240020000440200141086a2000103e0b200141106a24000b0d002000200141044114108d010b0e002000280200200028020c103d0b2000230041106b2201240020000440200141086a200010410b200141106a24000b0d002000200141014101108d010b2000230041106b2201240020000440200141086a200010430b200141106a24000b0d002000200141044108108d010b5101017e0240200341808080807820026b20016e4b0440410021020c010b2001ad2003ad7e22044220885004402004a721010c010b41a08404412141c484041014000b20002002360204200020013602000b1b002000418180014f0440200041808001418487041016000b20000b0f0020002001200241bc9d04108e010b5201017f230041206b220124002001410c6a4101360200200141146a4101360200200141e8a704360208200141003602002001410436021c200120003602182001200141186a360210200141e08d04101f000b960101017f230041306b22022400200241146a41013602002002411c6a4101360200200241e8a7043602102002410036020820024103360224200220002d0000410274220041f4b0046a28020036022c200220004188b1046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a1080012100200241306a240020000b0b002000280200200110180bbe0101027f200045044020010f0b02402000200020016a41016b410020016b7122014d04400240419cb104280200220020016a22032000490d0041a0b1042802002003490440200141ffff036a22002001490d032000411076220240002200417f46200041ffff0371200047720d032000411074220020024110746a22032000490d034100210241a0b1042003360200200020016a22032000490d010b419cb1042003360200200021020b20020f0b4180aa04411c41eca9041014000b41000b4601017f230041206b22002400200041146a41013602002000411c6a4100360200200041a89104360210200041d4aa0436021820004100360208200041086a41b09104101f000b5f01017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141e09204360218200141003602102001410536022c2001200141286a36022020012001410c6a360228200141106a41f09204101f000b7101037f230041106b220224000240024002402001450440410421030c010b200241086a20011043200228020c2203450d01200228020822044100480d0120042003104a2203450d020b200041003602082000200336020420002001360200200241106a24000f0b104b000b2004104c000bc60201067f200028020822042000280200460440230041306b2203240002400240027f4100200441016a2204450d001a2000280200220520056a22062005490d01200341086a41042006200420042006491b2204200441044d1b22061043200328020c210420032802082107024020050440200041046a280200210820032005104320032008360220200320032903003702240c010b200341003602280b200341106a20072004200341206a105020032802104504402003280214210420002006360200200041046a20043602004181808080780c010b20032802142104200341186a2802000b210520042005104f200341306a24000c010b41a084044121418491041014000b200028020821040b200028020420044103746a220320023a000420032001360200200441016a220145044041a08104411c41c095041014000b200020013602080b1f00024020014181808080784704402001450d012000104c000b0f0b104b000b890301077f230041106b220524002000027f0240027f02400240200204400240200141004e044020032802080d01200520012002106f2005280200210420052802040c050b200041086a41003602000c050b20032802042209450440200541086a20012002106f20052802082104200528020c0c040b200120026a41016b410020026b7122082001490d012001419cb104280200220620086a22072006490d031a2003280200210a41a0b1042802002007490440200841ffff036a22032008490d032003411076220740002203417f46200341ffff0371200347720d032003411074220620074110746a22032006490d0341a0b10420033602002001200620086a22072006490d041a0b419cb104200736020020012006450d031a2006200a2009100a210420010c030b20002001360204200041086a41003602000c030b4180aa04411c41eca9041014000b20010b21072004044020002004360204200041086a200736020041000c020b20002001360204200041086a20023602000b41010b360200200541106a24000b100020012002103020022000200110360b8d02010c7f230041106b2206240020002002101a20002802002204200028020822034f044002402002452003200446720d002001200241146c6a21092000280204200341146c6a210a200320046b41016a2107410021030340200120036a2204280200210b200441046a2d0000210c2004410c6a2802002105200641086a200441106a280200220810532006280208210d200628020c20052008100a210e2003200a6a220541106a20083602002005410c6a200e360200200541086a200d360200200541046a200c3a00002005200b3602002007450d01200741016a2107200341146a2103200441146a2009470d000b0b20002002360208200641106a24000f0b41808004412141a485041014000b3501017f230041106b22022400200241086a20011035200228020c21012000200228020836020020002001360204200241106a24000bb60101037f230041206b22022400200241086a2001100c024002402002280208450440200241106a20012802044103762204200228020c2203200320044b1b104d20030440034020022001103420022d000422044102460d03200241106a20022802002004410171104e200341016b22030d000b0b20002002290310370200200041086a200241186a2802003602000c020b200041003602040c010b200041003602042002280210200228021410420b200241206a24000bd11202047f017e230041c0016b22012400200141386a20004128100a1a02400240024002400240024002400240024002400240200128023841016b0e080102030405060708000b20014280800137029401200141a4b1043602900120014190016a2202102f200141b8016a20014198016a28020036020020012001290390013703b001200141f0006a2200200141b0016a220441d08804105620014180016a22032000105720012903800121052001410036029801200120053703900141dc8804412020021051200141386a41047220021021200120012903900137038001200141106a20032001280298011019200220012802102001280214102d200141086a2001280270220320012802742001280278220041c887041010200141003602b801200120012903083703b0012002200410212000200020012802b8016a22004b0d09200141e8006a2000360200200120033602702001200129037037036020014190016a200141e0006a10580c080b20014280800137029401200141a4b1043602900120014190016a2200102f200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a22034194890410592001200141c4006a3602b801200141233602b401200141a089043602b00120014180016a220220002003105a2000200210580c070b20014280800137029401200141a4b1043602900120014190016a2200102f200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341dc8904105b2001200141c4006a3602b801200141253602b401200141e889043602b00120014180016a220220002003105a2000200210580c060b20014280800137029401200141a4b1043602900120014190016a2200102f200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341a88a04105b2001200141c4006a3602b801200141253602b401200141b48a043602b00120014180016a220220002003105a2000200210580c050b20014280800137029401200141a4b1043602900120014190016a2200102f200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f48a0410562001200141386a4104723602b801200141263602b401200141808b043602b00120014180016a220220002003105a2000200210580c040b20014280800137029401200141a4b1043602900120014190016a2202102f200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a105720012903800121052001410036029801200120053703900141d4aa04410020021051200241a68b0441141036200120012903900137038001200141206a20032001280298011019200220012802202001280224102d200141186a2001280270220320012802742000280200220041c887041010200141003602b801200120012903183703b0012002200141b0016a10212000200020012802b8016a22004b0d04200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b8012001411e3602b401200141ba8b043602b00120014180016a2200200141e0006a200141b0016a105c20014190016a200010580c030b20014280800137029401200141a4b1043602900120014190016a2200102f200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341f08b0410592001200141386a4104723602b801200141203602b401200141fc8b043602b00120014180016a220220002003105c2000200210580c020b20014280800137029401200141a4b1043602900120014190016a2200102f200141b8016a20014198016a28020036020020012001290390013703b0012000200141b0016a220341b48c0410592001200141386a4104723602b801200141203602b401200141c08c043602b00120014180016a220220002003105c2000200210580c010b20014280800137029401200141a4b1043602900120014190016a2202102f200141f8006a220020014198016a280200360200200120012903900137037020014180016a2203200141f0006a105720012903800121052001410036029801200120053703900141d4aa04410020021051200241e08c04411c1036200120012903900137038001200141306a20032001280298011019200220012802302001280234102d200141286a2001280270220320012802742000280200220041c887041010200141003602b801200120012903283703b0012002200141b0016a10212000200020012802b8016a22004b0d01200141e8006a200036020020012003360270200120012903703703602001200141386a4104723602b801200141293602b401200141fc8c043602b00120014180016a2200200141e0006a200141b0016a105a20014190016a200010580b200141b8016a20014198016a280200360200200120012903900122053703b001200141a0016a2802002100200128029c012103200141003602980120012005370390010240024002400240024002400240024002400240200128023841016b0e080102030405060708000b20014190016a220241001032200141386a41047220021021200141dc006a280200200210180c080b20014190016a220241011032200141c4006a28020020021018200128023c200141406b2d000020021023200141cc006a280200200141d0006a280200200210510c070b20014190016a220241021032200141c4006a28020020021018200128023c200141406b2d000020021023200141cc006a280200200141d0006a280200200210510c060b20014190016a220241031032200141c4006a28020020021018200128023c200141406b2d0000200210230c050b20014190016a220241041032200128023c200210180c040b20014190016a220241051032200128023c200141406b2d0000200210232002200141c4006a2d000010320c030b20014190016a220241061032200128023c200141406b2d0000200210232002200141c4006a2d000010320c020b20014190016a220241071032200128023c200141406b2d0000200210230c010b20014190016a220241081032200128023c20021018200141406b200210210b20012001290390013703b0012001200141b0016a20012802980110192003200020012802002001280204100620012802381a200141c0016a24000f0b41a08104411c41d887041014000b0d002000200120024119108f010b5301037f230041106b2202240020012802082203200128020422044b04402003200441e0ac041046000b200241086a200320042001280200108a012000200229030837020020004100360208200241106a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101920022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b0d002000200120024116108f010bf90102037f017e230041d0006b22032400200341106a22052001105720032903102106200341003602282003200637032020022802002002280204200341206a2204105120022802082802002004101820032003290320370310200341086a20052003280228101920042003280208200328020c102d20032001280200220520012802042001280208220241c88704101020034100360248200320032903003703402004200341406b10212002200220032802486a22044b044041a08104411c41d887041014000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b0d002000200120024118108f010b830202037f017e230041d0006b22032400200341106a22052001105720032903102106200341003602282003200637032020022802002002280204200341206a2204105120022802082202280200200241046a2d00002004102320032003290320370310200341086a20052003280228101920042003280208200328020c102d20032001280200220520012802042001280208220241c88704101020034100360248200320032903003703402004200341406b10212002200220032802486a22044b044041a08104411c41d887041014000b20012005360200200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b3501017f230041106b22002400200042808001370204200041a4b104360200200041011032200010314101200028020810451062000b4c01017f230041106b22022400200242808001370204200241a4b1043602002002410010322002200141ff0171410747047f20024101103220010541000b10322000200228020810451062000bef0201047f230041d0006b2203240020034100360218200342808001370224200341a4b1043602202001200341206a2204104920022004101820032003290320370310200341086a200341106a20032802281019200328020c21022003280208210520032802102101200320032802142206360220200520022001200410002102200320032802202001200641a0860410150240024002400240410c20022002410c4f1b0e0402010100010b200041003a00000c020b2003412c6a4101360200200341346a4100360200200341b08704360228200341d4aa0436023020034100360220200341206a41b88704101f000b200328020021012003200328020436024c20032001360248200341206a200341c8006a103320032d00200440200041023b00000c010b20002003290021370001200041196a200341396a290000370000200041116a200341316a290000370000200041096a200341296a290000370000200041013a00000b200341d0006a24000b800202067f017e230041306b2201240020014100360218200142808001370224200141a4b1043602204100200141206a2204101820012001290320370310200141086a200141106a20012802281019200128020c210520012802082106200129031021072001410036022820012007370320200028020020041018200041086a28020021022000410c6a28020022032004103020030440200220034103746a210303402002280200200241046a2d0000200141206a1023200241086a22022003470d000b0b200041106a200141206a1021200120012903203703102001200141106a20012802281019200620052001280200200128020410071a200141306a24000b6601017f230041306b2202240020024100360218200242808001370224200241a4b1043602202000200241206a2200104920012000101820022002290320370310200241086a200241106a200228022810192002280208200228020c10081a200241306a24000b0d00200041a4b10420011009000bef4702167f017e230041b0036b2200240002400240024002400240024002400240024002400240024002400240024002400240027f0240103941ff017141054604402000418080013602900241a4b10420004190026a22011002200041c8016a20002802900241a4b1044180800141a086041015200020002903c80137038003200041003602900220004180036a2001410410110d0e200028029002220841187621012008411076210220084108762105027f0240024002400240024002400240024002400240024002400240024002400240200841ff0171220841d9006b0e03011f09000b20084108460d0520084110460d0a2008411c460d06200841d200460d01200841f100470440200841fd00460d082008418901460d042008419901470440200841a501460d04200841cb01470440200841d301460d0c200841dc01460d07200841fb0147200541ff01714189014772200241ff0171413647200141e4004772720d2141060c120b200541ff017141fe0147200241ff017141fb014772200141ec0147720d20200041f0006a20004180036a100e20002802700d2020002802742203410876210441000c110b200541ff017141f20047200241ff0171410c47722001411e47720d1f200041f8006a20004180036a100e20002802780d1f200028027c2203410876210441010c100b200541ff01712203413c460d0e200341cc0147200241ff017141f90047722001418d0147720d1e20004190026a20004180036a101b20002d00940222074102460d1e20002f00950220002d00970241107472210b20002f00910220002d00930241107472210420002f0099022000419b026a2d000041107472210a20002802a0022109200028029c02210d20002d009802210620002d009002210341070c0f0b200541ff017141d80147200241ff017141c7004772200141e90147720d1d20004180016a20004180036a103420002d00840122014102460d1d200028028001220341087621042001410171210741030c0e0b200541ff017141d50047200241ff017141054772200141e40147720d1c20004190016a20004180036a100e2000280290010d1c200028029401210320004188016a20004180036a103420002d008c0122014102460d1c2000280288012207410876210b200341087621042001410171210641040c0d0b200541ff017141cf0147200241ff0171412447722001413e47720d1b20004180036a102441ff0171220c4102460d1b41050c0c0b200541ff0171412f47200241ff017141f5004772200141e40147720d1a20004190026a20004180036a101b20002d00940222074102460d1a20002f00950220002d00970241107472210b20002f00910220002d00930241107472210420002f0099022000419b026a2d000041107472210a20002802a0022109200028029c02210d20002d009802210620002d009002210341080c0b0b200541ff017141a70147200241ff017141a60147722001410f47720d1920004198016a20004180036a103420002d009c0122014102460d19200028029801220341087621042001410171210741090c0a0b200541ff0171410247200241ff017141e7004772200141c00047720d18410a0c090b200541ff017141d00147200241ff01714196014772200141f60047720d17200041a0016a20004180036a103420002d00a40122014102460d1720002802a001210320004180036a102441ff017122064102460d172003410876210420014101712107410b0c080b2001200541ff017141de0047200241ff017141ea014772720d16200041b0016a20004180036a103420002d00b40122014102460d1620002802b0012103200041a8016a20004180036a100d20002d00a8014101710d164102210620002d00a9010e020504160b200541ff0171412347200241ff017141980147722001410f47720d15200041b8016a20004180036a103420002d00bc0122014102460d1520002802b8012203410876210420014101712107410d0c060b200541ff017141b90147200241ff0171413447720d1420014103460d010c140b200541ff017141fe0047200241ff017141334772200141ea0147720d13200041c0016a20004180036a100e20002802c0010d1320002802c401210320004190026a20004180036a103320002d0090020d13200041e8016a200041a9026a2900003703002000200041a1026a2900003703e0012000280091022207410876210b2003410876210420002f01960220004198026a2d000041107472210a2000419d026a280000210920004199026a280000210d20002d0095022106410f0c040b20004190026a20004180036a103320002d0090020d12200041e8016a200041b0026a2d00003a00002000200041a8026a2903003703e0012000280294022203410876210420004198026a2802002207410876210b2000419d026a2f00002000419f026a2d000041107472210a200041a4026a2802002109200041a0026a280200210d2000419c026a2d0000210620002f019202210e20002d009102210c410e0c030b20004180036a102441ff017122024102460d11200241017121060b2003410876210420014101712107410c0c010b200241ff017141a201472001413247720d0f20004190026a20004180036a103320002d0090020d0f200041e8016a200041b0026a2d00003a00002000200041a8026a2903003703e0012000280294022203410876210420004198026a2802002207410876210b2000419d026a2f00002000419f026a2d000041107472210a200041a4026a2802002109200041a0026a280200210d2000419c026a2d0000210620002f019202210e20002d009102210c41020b2110200041d8016a200041e8016a290300370300200020002903e0013703d001200041003602880320004280800137029402200041a4b10436029002410020004190026a22021018200020002903900237038003200041e8006a20004180036a2000280298021019200028026c21052000280268210820002802800321012000200028028403220f36029002200820052001200210002102200041e0006a2000280290022001200f41a0860410150240024002400240410c20022002410c4f1b0e0400030301030b20002802642101200020002802603602e002200020013602e402200041d8006a200041e0026a100e024020002802580d00200028025c210120004190026a200041e0026a10542000280294022202450d002000280298022108200028029002210f20004190026a200041e0026a103320002d009002450d02200f200210420b2000419c026a4101360200200041a4026a4100360200200041988e04360298020c120b2000419c026a4101360200200041a4026a4100360200200041b88e04360298020c110b200341ff0171200441087472210520004188026a200041a9026a29000037030020004180026a200041a1026a290000370300200041f8016a20004199026a29000037030020002000290091023703f001200020083602ec01200020023602e80120002001ad2216200fad422086843703e001200041f0016a21030240024002400240024002400240024002400240201041016b0e0f01020304050e060708111615141312000b20004180036a200510172000419c026a20004188036a2802003602002000200029038003370294022000410036029002230041106b22012400200142808001370204200141a4b104360200024020004190026a2202280200450440200141001032200241086a28020022034504402001410010320c020b20014101103220032002410c6a280200200110290c010b200141011032200110310b0c1c0b20004180036a22022005103b20004190026a220141017220024121100a1a200041003a009002230041106b22022400200242808001370204200241a4b104360200024020012d000045044020024100103220012d00014504402002410010320c020b200241011032200141026a200210210c010b200241011032200210310b4100200228020810451062000b2000200a3b019c022000419e026a200a4110763a0000200041af026a200041d8016a2d00003a0000200020093600a3022000200d36009f02200020063a009b0220002005360093022000200e3b0091022000200c3a009002200020002903d0013700a7022000200741ff0171200b4108747236009702230041306b22012400200141286a20004190026a220241186a290000370300200141206a200241106a290000370300200141186a200241086a29000037030020012002290000370310200141086a200141106a103a20002001290308370300200141306a24002000280200210220002802042103230041106b22012400200142808001370204200141a4b104360200200141001032024020024504402001410010320c010b2001410110322003200110180b0c1a0b2005200741ff0171410047102241ff01712101200041003a009002200020013a009102230041106b22012400200142808001370204200141a4b104360200024020004190026a22022d000045044020014100103220022d000141024604402001410010320c020b200141011032200241016a200110270c010b200141011032200110310b0c190b20004190026a200510172000280294022202450d0720002802980221012000200028029002360290022000200236029c0220002002200141146c22046a220a360298024103210c027f02402001450d00200741ff0171200b4108747221074100210102400340200120026a220341046a2d000022054102460d0120072003280200462005200646714504402004200141146a2201470d010c030b0b200341086a280200220c4108762101200341146a210a200341106a28020021022003410c6a2802000c020b200341146a210a0b41000b21042000200a3602940220004190026a103f2004450c080b20004190026a2104230041306b220324002003200c41ff01714100473a0017200341186a200041e0016a220241086a2802002002410c6a280200103c2003280218210720032802202105200328021c210120032002360228200320013602242003200120054103746a3602202003200136021c200320073602182003200341176a36022c2001210203400240200341086a200341186a101220032d000c22054102460d002003280208220620054101712205102241ff017122094102460d01200328022c2d00002005470d01200220093a000420022006360200200241086a21020c010b0b20042001360204200420073602002004200220016b410376360208200341306a240020002802940221022000280298022103230041106b22012400200142808001370204200141a4b1043602000240200204402001410010322003200110302003450d01200220034103746a21030340200228020020011018200241046a20011027200241086a22022003470d000b0c010b200141011032200110310b0c170b20004180036a1037200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220320004188036a2204290300370300200020002903800337039002200041186a20004190026a10204100210102402000280218450d00200028021c2102200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020032004290300370300200020002903800337039002200041e0026a20004190026a106420002d00e002210120002802e4022203450d00200020002d00e3023a00c302200020002f00e1023b00c102200020002802e8023602c802200020033602c402200020013a00c002200041106a20091053200028021021032000280214200d2009100a21084104210120094180014d0440200041e0026a20002802c40220002802c8021052200020002802e402220136029c02200020002802e002360290022000200120002802e802220c41146c22046a220b3602980202400240200c450d00200741ff0171210c034020012d0004220e41024704402005200128020046200c200e46710d03200141146a2101200441146b22040d010c020b0b200141146a210b0b2000200b3602940220004190026a2201103f200041a0026a220420093602002000419c026a220b20083602002000200336029802200020073a0094022000200536029002200041c0026a22032001101c200220002802c40220002802c8021028200041a8026a2009360200200041a4026a200d3602002004200a410874200672360200200b200236020020004198026a20073a000020002005360294022000410136029002200110552003101d0c140b2000200141146a3602940220004190026a103f410221010b200041c0026a101d0b41012106200141ff01714107460d110c150b20004180036a1037200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220220004188036a2203290300370300200020002903800337039002200041286a20004190026a10204100210102402000280228450d00200028022c2108200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020022003290300370300200020002903800337039002200041e0026a20004190026a106420002d00e002210120002802e4022204450d00200020002d00e3023a00c302200020002f00e1023b00c102200020002802e802220b3602c802200020043602c402200020013a00c002200041206a200910532000280220210f2000280224200d2009100a2110024020094180014d0440200041e0026a20002802c402221120002802c80222121052200020002802e402220c36029c02200020002802e002360290022000200c20002802e802220141146c22136a220e36029802027f024002402001450d0041002101200741ff017121144100210203402001200c6a220341046a2d00002215410247044020052003280200462014201546710d03200241016a21022013200141146a2201470d010c020b0b200341146a210e0b2000200e360294024100210441030c010b2000200341146a360294022002200b4f0d05200120046a22012005360200200141106a20093600002001410c6a2010360000200141086a200f360000200141046a20073a00004101210441070b210120004190026a103f2004450d012008201120121028200041a8026a2009360200200041a4026a200d360200200041a0026a200a4108742006723602002000419c026a200836020020004198026a20073a00002000200536029402200041023602900220004190026a1055200041c0026a101d0c120b410421010b200041c0026a101d0b41012106200141ff01714107460d0f0c140b20004180036a1037200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220120004188036a2202290300370300200020002903800337039002200041306a20004190026a10202000280230047f20002802342109200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020012002290300370300200020002903800337039002200041e0026a20004190026a106420002d00e002210120002802e4022202450d07200020002d00e3023a00c302200020002f00e1023b00c102200020023602c402200020013a00c002024020002802e8022206044041002104200741ff01712103200221010340024020012802002005470d00200141046a2d00002003470d0041012103200441016a2201044020012006470440200741ff017121080340024002402002200141146c6a22042802002005470d0020042d00042008470d00200141016a2201450d1c200341016a22030d0141a08104411c41f484041014000b200120034f04402002200120036b41146c6a220a2004290200370200200a41106a200441106a280200360200200a41086a200441086a290200370200200141016a22010d0141a08104411c419485041014000b418080044121418485041014000b20012006470d000b0b024020034100200320064b1b450440200320064d0d0141808004412141cc81041014000b41808004412141bc81041014000b2000200620036b22013602c8022003450d0420092002200110282000419c026a200936020020004198026a20073a00002000200536029402200041033602900220004190026a1055200041c0026a101d0c0d0b0c170b200141146a21012006200441016a2204470d000b0b200020063602c8020b200041c0026a101d41030541000b2101410121060c130b2002200b41a488041065000b2000419c026a4101360200200041a4026a4100360200200041b0870436029802200041d4aa043602a002200041003602900220004190026a41b88704101f000b200041043a00900220004190026a1047000b410021044101210c41010b21032000419c026a200236020020004198026a20043602002000200c3a0094022000410036029002200020013b009502200020014110763a009702230041106b22012400200142808001370204200141a4b104360200024020004190026a2202280200450440200141001032200241086a2802002200044020014100103220002002410c6a280200200110510c020b200141011032200120022d000410320c010b200141011032200110310b0c100b20004180036a1037200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220220004188036a2203290300370300200020002903800337039002200041086a20004190026a1020200020002802082204410146047e42810c05200041003602e80220004280808080c0003703e0022001410441001028200041a8026a20004198036a2207290300370300200041a0026a20004190036a22052903003703002002200329030037030020002000290380033703900220004190026a220220011025200120004180036a102a2000200141016a2206417f20061b3602e001200041ac026a2007290300370200200041a4026a20052903003702002000419c026a2003290300370200200041b4026a2001360200200020002903800337029402200041003602900220021055200041e0026a101d2002200041e0016a4130100a1a20021060201642208642800c840b3703900220044101462103230041106b22012400200142808001370204200141a4b104360200024020004190026a22022d00002200410247044020014100103220004504402001410010322002280204200110180c020b200141011032200120022d000110320c010b200141011032200110310b0c0f0b41012106200141ff01714107470d0c0b20004190026a2201200041e0016a4130100a1a2001106041072101410021060c0b0b20004180036a1037200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220220004188036a2203290300370300200020002903800337039002200041386a20004190026a102020002802382204047f200028023c2101200041a8026a20004198036a290300370300200041a0026a20004190036a2903003703002002200329030037030020002000290380033703900220004190026a2202102c41e481042001106141dc81042001106120004104360290022000200136029402200210552002200041e0016a4130100a1a2002106041070541000b21012004452001105e000b200041d8026a200041d8016a290300370300200020093602cc022000200d3602c802200020063a00c402200020002903d0013703d0022000200a3b00c5022000200a4110763a00c7022000200741ff0171200b410874723602c002200041e0026a103720004190026a41e081042005105f20002d009002410247044020004180036a20004190026a4121100a1a200041a9026a200041f8026a290300370000200041a1026a200041f0026a29030037000020004199026a200041e8026a290300370000200020002903e0023700910241012104200041013a00900220002d008003044020004180036a41017220004190026a410172106641017321040b20004190026a2005103b027f027f20002d009002044020004198036a200041a9026a29000037030020004190036a200041a1026a29000037030020004188036a20004199026a2900003703002000200029009102370380034100200420004180036a200041e0026a1066410173710d011a200041a8026a200041d8026a290300370300200041a0026a200041d0026a29030037030020004198026a200041c8026a290300370300200020002903c00237039002200041d0006a20004190026a103a410620002802504101460d011a200041a8026a220220004198036a290300370300200041a0026a220320004190036a29030037030020004198026a220420004188036a29030037030020002000290380033703900220004190026a2201102c2002200041d8026a2903003703002003200041d0026a2903003703002004200041c8026a290300370300200020002903c002370390022001200510252005200041c0026a102a2001200041e0016a4130100a1a200110604107210141000c020b41000b210141010b2001105e000b200020002d0091023a00a7032000418c036a410136020020004194036a41013602002000418c8204360288032000410036028003200041013602ac032000200041a8036a360290032000200041a7036a3602a80320004180036a41fc8204101f000b2000200a3b01ec02200041ee026a200a4110763a0000200041ff026a200041d8016a2d00003a0000200020093600f3022000200d3600ef02200020063a00eb02200020053600e3022000200e3b00e1022000200c3a00e002200020002903d0013700f7022000200741ff0171200b410874723600e70220004180036a1037200041a8026a20004198036a290300370300200041a0026a20004190036a29030037030020004198026a220120004188036a290300370300200020002903800337039002200041c8006a20004190026a102020002802482202047f41e08104200028024c2203200041e0026a102b200041a8026a200041f0026a290300370300200041b0026a200041f8026a2903003703002000410836029002200120002903e002370300200041a0026a200041e8026a290300370300200020033602940220004190026a220110552001200041e0016a4130100a1a2001106041070541000b21012002452001105e000b20004180036a2204103741002101027f0240200420031066044041002103410321012005200741ff0171410047102241ff01714102470d010b41010c010b200041003602e80220004280800137029402200041a4b1043602900241b986f8c90720004190026a22011018200520072001102320002000290390023703e002200041406b200041e0026a20002802980210192000280240200028024410081a02402008450d0041002104200741ff01712106200221010340024020012802002005470d00200141046a2d00002006470d0041012103200441016a2201044020012008470440200741ff01712106034002400240200220014103746a22042802002005470d0020042d00042006470d00200141016a2201450d0f200341016a22030d0141a08104411c41f484041014000b200120034f04402002200120036b4103746a2004290200370200200141016a22010d0141a08104411c419485041014000b418080044121418485041014000b20012008470d000b0b20034100200320084b1b450440200320084d0d0441808004412141cc81041014000b41808004412141bc81041014000b0c0a0b200141086a21012008200441016a2204470d000b0b2000200820036b3602ec0120004198026a20073a0000200020053602940241072101200041073602900220004190026a220210552002200041e0016a4130100a1a2002106041000b2001105e000b20004180036a2202103741002101024002402002200310660440410021042005200741ff01714100472201102241ff017122024102470d01410321010b410121040c010b20002002200620064102461b41017122023a00e00220052001200041e0026a10262000419c026a20023a000020004198026a20073a00002000200536029402200041063602900220004190026a220110552001200041e0016a4130100a1a20011060410721010b20042001105e000b200020063a00e00220004180036a220110372001200310662202047f2005200741ff01714100472201200041e0026a1026200041e0016a220341047220052001104e2000419c026a20063a000020004198026a20073a00002000200536029402200041053602900220004190026a22011055200120034130100a1a2001106041070541000b210120024101732001105e000b20004190026a2201200041e0016a4130100a1a2001106041072101410021060c040b20004190026a2201200041e0016a4130100a1a2001106041072101410021060c030b105d000b200041d4aa043602a002200041003602900220004190026a41e08d04101f000b41a08104411c41e484041014000b20062001105e000b4100200128020810451062000b2003200128020810451062000bb60101017f230041306b22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a29000037030020022001290000370310200241086a200241106a1020024020022802080440200241106a200228020c10172002280214220104402000200228021836020820002001360204200020022802103602000c020b20004100360204200041013a00000c010b20004100360204200041013a00000b200241306a24000b7501017f230041306b220324002003200136020420032000360200200341146a41023602002003411c6a41023602002003412c6a4105360200200341d4960436021020034100360208200341053602242003200341206a360218200320033602282003200341046a360220200341086a2002101f000b0b00200020014120100b450b800a010a7f23004190016b220024000240103941ff01712201410546044020004180800136026041a4b104200041e0006a22011002200041286a200028026041a4b1044180800141a086041015200020002903283703302000410036026002400240024002400240200041306a2001410410110d002000280260220141187621022001411076210320014108762104200141ff0171220141094704402001419b0147200441ff017141ae014772200341ff0171419d0147200241de004772720d01200041406b1037200041386a4204370300200042003703300c070b200441ff0171413547200341ff017141da014772200241880147720d00200041206a200041306a100c20002802200d0041012102200028023422012000280224220420012004491b22030440200041186a20031041200028021c2202450d05200028021822014100480d0520012002104a2202450d040b41002101200041003602682000200236026420002003360260200404400340200041306a102421052000280260210302400240200541ff01712207410247044020012003460d010c020b2003200028026410400c040b200041e0006a2103230041306b2202240002400240027f4100200141016a2201450d001a2003280200220520056a22062005490d01200241086a41082006200120012006491b2201200141084d1b22061041200228020c210120022802082108024020050440200341046a280200210920022005104120022009360220200220022903003702240c010b200241003602280b200241106a20082001200241206a105020022802104504402002280214210120032006360200200341046a20013602004181808080780c010b20022802142101200241186a2802000b210320012003104f200241306a24000c010b41a084044121418491041014000b20002802642102200028026821010b200120026a20073a0000200028026841016a2201450d0320002001360268200441016b22040d000b20002802602103200028026421020b2002450d00200041e0006a200041306a1054200028026422054504402003200210400c010b20012000280268470d0220002802602106200041e0006a220720052001103c200028026021082000280268210920002802642104200041003602880120004200370380012000200236027c2000200120026a36027820002002360274200020033602702000200436026c2000200420094103746a3602682000200436026420002008360260200041106a20071012024020002d001422034102460d00200028021021020340200028027422042000280278460d012000200441016a360274200020042d00004101713a003020022003410171200041306a1026200041086a200041e0006a10122000280208210220002d000c22034102470d000b0b2000280260200028026c10422000280270200028027c1040200041406b10372000413c6a2001360200200041386a200536020020002006360234200041003602300c060b105d000b41a08104411c41c095041014000b200041ec006a4101360200200041f4006a4100360200200041fc8e04360268200041d4aa0436027020004100360260200041e0006a41848f04101f000b2001104c000b104b000b200020013a0060200041e0006a1047000b200041e0006a2201200041306a4130100a1a20011060230041106b22002400200042808001370204200041a4b1043602002000410010322000410010324100200028020810451062000b5901017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41948f04200241086a10692100200241206a240020000bf60301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1101000d040b200141086a21012004280200210020042802042106200441086a21042000200341186a2006110300450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1101000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a107f20032003290310370320200341086a2005200141046a107f20032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110300450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1101000d010b41000c010b41010b2101200341406b240020010b0f00200028020020012002106b41000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a200020032002106e2004280208200428020c104f200028020821030b200028020420036a20012002100a1a2003200220036a22014b044041b08f04411c41d095041014000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b106b0c020b230041106b22042400200441086a200020034101106e2004280208200428020c104f200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41b08f04411c41c095041014000b5201017f230041206b2202240020002802002100200241186a200141106a290200370300200241106a200141086a290200370300200220012902003703082000200241086a10682100200241206a240020000bdd0101027f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22052002490d0141082005200320032005491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200420032005200441106a105020042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41d08f044121418491041014000bd00101037f02402001450440200221030c010b02402001200120026a41016b410020026b7122054d0440419cb104280200220220056a22042002490d0241a0b1042802002004490440200541ffff036a22022005490d022002411076220340002202417f46200241ffff0371200247720d022002411074220220034110746a22042002490d024100210341a0b1042004360200200220056a22042002490d030b419cb1042004360200200221030c020b4180aa04411c41eca9041014000b410021030b20002001360204200020033602000be406020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441cb98046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441cb98046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441cb98046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441cb98046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b2102410021042005410471044041d4aa042104200241d4aa0441d4aa04107620026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a28020022012007200410790d01200220082006200128020c11010021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a2007200410790d02200341106a2001200920026b4101107a20032802142202418080c400460d0220032802102104200520082006200a28020c1101000d02200420022005200a107b0d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a28020022012007200410790d01200220082006200128020c11010021000c010b41012100200341086a2001200920026b4101107a200328020c2205418080c400460d002003280208210920012802002202200141046a28020022012007200410790d00200220082006200128020c1101000d002009200520022001107b21000b200341406b240020000f0b41e09504411c41949b041014000b41809604412141d8a7041014000b0300010b0e0020002802001a03400c000b000b0d0042f2e7eb9187bab2c1d1000b4a01017f230041106b22052400200220034904402003200220041046000b200541086a2003200220011075200528020c21012000200528020836020020002001360204200541106a24000b1500200020012002200341b8af0441809604108c010ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d002001200010772206200020016a22082004417c716a200441037110776a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41f09e041078200328020c21052003280208210820032003280200200328020422002000417c714180a0041078200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41e09504411c4188a2041014000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441e09504411c41b8a2041014000b41e09504411c4198a2041014000b41e09504411c41a8a2041014000b41e09504411c41f8a1041014000b20012002107721020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41e09504411c41c8a7041014000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41fcaa04412320041014000b39000240027f2002418080c40047044041012000200220012802101103000d011a0b20030d0141000b0f0b200020034100200128020c1101000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41e09504411c41a49b041014000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110300450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110300450d000b200441016b0b2000490b4b01017f230041106b22052400200120034d0440200541086a4100200120021075200528020c21012000200528020836020020002001360204200541106a24000f0b2001200320041016000bee04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11010021000c020b41e09504411c41c8a3041014000b200b450440200128020020032004200128020428020c11010021000c010b2001410c6a2802002200200320046a2003107622024b0440200941086a2001200020026b4100107a41012100200928020c2202418080c400460d01200928020821062001280200220520032004200141046a280200220128020c1101000d012006200220052001107b21000c010b200128020020032004200128020428020c11010021000b200941106a240020000b140020002802002001200028020428020c1103000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b4d01017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a10692100200341206a240020000be808010b7f23004190016b22032400200341003b0184012003410a3602800120034281808080a00137037820032002360274200341003602702003200236026c200320013602682003200236026420034100360260200028020421062000280200210720002802082108200341fc006a2109027f0340024002400240024020032d008501450440200341d8006a2003280268220c200328026c200328027020032802741082010240024020032802582201450d00200328025c2100034002400240024002400240027f0240024002400240200328027822020440200220096a41016b2d00002104200041084f04402001200141036a417c712202460440200041086b210a410021020c040b200341d0006a200220016b22022000200020024b1b22022001200041b89c04107c200341c8006a20042003280250200328025410830120032802484101470d02200328024c21010c050b200341306a2004200120001083012003280234210120032802300c050b4180960441214180a6041014000b2002200041086b220a4b0d010b200441818284086c210b0340200241046a22052002490d04200120026a280200200b73220d417f73200d41818284086b71200120056a280200200b732205417f73200541818284086b7172418081828478710d012002200241086a22024b0d072002200a4d0d000b0b200341406b20012000200241e89c041074200341386a200420032802402003280244108301410020032802384101470d011a2002200328023c6a220120024f0d0041e09504411c41f89c041014000b41010b4101460440200141016a2200450d022000200328027022006a22022000490d0320032002360270200220032802782200490d05200341286a2003280268200328026c200220006b200210820120032802282202450d05200328022c2100200341206a20032802782009410441b0a604107c2002200020032802202003280224108401450d05200341186a200328026020032802702200200c10850120032000360260200328021c2102200328021821000c080b200320032802743602700c060b41e09504411c41c89c041014000b41e09504411c4190a6041014000b41e09504411c41a0a6041014000b41e09504411c41d89c041014000b200341106a2003280268200328026c2003280270200328027410820120032802142100200328021022010d000b0b4100210020032d0085010d00200341013a008501024020032d008401044020032802642101200328026021040c010b2003280264220120032802602204490d0420012004460d010b200341086a200420012003280268108501200328020c2102200328020821000b20000d010b41000c050b20082d0000450d01200741c497044104200628020c110100450d010c020b41809604412141d8a3041014000b2003410a36028c0120082002047f200320002002200241016b4190a00410742003418c016a4101200328020020032802041084010541000b3a0000200720002002200628020c110100450d010b0b41010b210220034190016a240020020b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011075200528020c2107200528020821060b2000200736020420002006360200200541106a24000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b1801017f2001200346047f200020022001100b0541010b450b1500200020012002200341eca40441809604108c010b6001027f230041206b220224002001280204210320012802002101200241186a2000280200220041106a290200370300200241106a200041086a2902003703002002200029020037030820012003200241086a10692100200241206a240020000b0b0020002802002001107d0b1800200128020041ecb0044105200128020428020c1101000b9c0301037f230041406a22022400200028020021034101210002402001280200220441909704410c200141046a280200220128020c1101000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241a0970436023020024100360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a108001450d010c020b20032802002200200328020428020c110a0042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241a0970436023020024100360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a1080010d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4105360200200241346a4105360200200241e896043602182002410036021020022000410c6a3602382002200041086a3602302002410336022c200220003602282002200241286a36022020042001200241106a10800121000b200241406b240020000b15002000200120022003419caa0441b0aa04108c010b1500200020012002200341b8af0441d0af04108c010b2800200120024d04402000200220016b3602042000200120036a3602000f0b2005412120041014000b3901017f230041106b22042400200441086a2003200220011044200428020c21012000200428020836020020002001360204200441106a24000b7301017f230041306b220424002004200136020420042000360200200441146a41023602002004411c6a41023602002004412c6a41053602002004200336021020044100360208200441053602242004200441206a3602182004200441046a36022820042004360220200441086a2002101f000bf80102037f017e230041d0006b22042400200441106a22062001105720042903102107200441003602282004200737032020022802002002280204200441206a22051051200520022802082003103620042004290320370310200441086a20062004280228101920052004280208200428020c102d20042001280200220620012802042001280208220241c88704101020044100360248200420042903003703402005200441406b10212002200220042802486a22054b044041a08104411c41d887041014000b20012006360200200141086a22022005360200200041086a200228020036020020002001290200370200200441d0006a24000b0b9a310300418080040bd12a617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e352f7372632f636f6d706163742e727300210001006a000000420000002600000000000000617474656d707420746f206164642077697468206f766572666c6f77400a01007f0000005206000035000000400a01007f00000059060000240000003b605e7d6dbd733300e945cab16cd67c4661696c656420746f206765742076616c756520696e204d617070696e673a20ec000100200000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e727314010100680000009c000000250000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e72730000008c0101006d0000009d000000110000008c0101006d0000009d0000003000000000000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000006814010083000000c80100001e0000000a000000010000000100000001000000400a01007f0000006c06000015000000400a01007f0000006d06000015000000400a01007f0000007b0600003e000000400a01007f0000007f06000011000000400a01007f000000c3080000110000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300b40201006b000000e40000001400000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e0000008c0101006d0000006b0100000e0000008c0101006d0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72940301001c0000008c0101006d000000ed00000017000000b01501006e000000c100000037000000b01501006e000000c4000000090000002f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f74797065732e72730000e80301003a0000002a0000000d0000004964656e746974793a3a4964656e74697479437265617465640000005415010000000000340401004964656e746974793a3a4964656e74697479437265617465643a3a6f776e65724964656e746974793a3a416464726573734164646564000054150100000000007c0401004964656e746974793a3a4164647265737341646465643a3a6964656e746974795f6e6f4964656e746974793a3a4164647265737355706461746564005415010000000000c30401004964656e746974793a3a41646472657373557064617465643a3a6964656e746974795f6e6f4964656e746974793a3a4164647265737352656d6f76656400000054150100000000000d0501004964656e746974793a3a4164647265737352656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a4964656e7469747952656d6f76656400005415010000000000590501004964656e746974793a3a4964656e7469747952656d6f7665643a3a6964656e746974795f6e6f4964656e746974793a3a436861696e41646465644964656e746974793a3a436861696e41646465643a3a636861696e5f69644964656e746974793a3a436861696e5570646174656400005415010000000000d80501004964656e746974793a3a436861696e557064617465643a3a636861696e5f69644964656e746974793a3a436861696e52656d6f766564000054150100000000001c0601004964656e746974793a3a436861696e52656d6f7665643a3a636861696e5f69644964656e746974793a3a5265636f766572794163636f756e745365744964656e746974793a3a5265636f766572794163636f756e745365743a3a6964656e746974795f6e6f2f55736572732f73657267656a73616b61632f646f74666c6f772d696e6b2f636f6e7472616374732f6964656e746974792f6c69622e7273000000a5060100380000002700000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900f00601002700000073746f7261676520656e7472792077617320656d7074790020070100170000004561636820636861696e206e6565647320746f2068617665206120636f72726573706f6e64696e6720636861696e206964207370656369666965642e400701003c000000a506010038000000c10000000d0000000a00000004000000040000000b0000000c0000000d00000000000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000a00000000000000010000000e0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300040801007f0000008a0100001c0000006361706163697479206f766572666c6f770000009408010011000000040801007f00000006020000050000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564003d09010015000000520901000d000000c00801007d00000095010000090000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000b30901007b00000064020000200000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e727300400a01007f000000300700000d000000400a01007f0000009e07000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320220b010020000000420b0100120000003a0000005415010000000000640b010001000000640b0100010000000a00000000000000010000000f00000070616e69636b65642061742027272c209c0b0100010000009d0b0100030000003a2000005415010000000000b00b010002000000202020202c0a280a282f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000130d01007e0000005d0500000d000000130d01007e000000ed050000380000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e727300b40d0100830000004e0000002f000000b40d0100830000005a0000001f000000b40d0100830000006300000009000000b40d0100830000006800000027000000b40d010083000000680000003e00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820880e0100120000009a0e01002200000072616e676520656e6420696e64657820cc0e0100100000009a0e0100220000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273000000ec0e010081000000c4050000250000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e7273800f010080000000fe0300002f000000800f010080000000de0800001e000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820282010010015000000351001002b000000210b0100010000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273781001008000000047000000150000007810010080000000540000001100000078100100800000005a00000009000000781001008000000064000000110000007810010080000000660000000d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e727300481101007f0000009100000011000000481101007f0000004f0200002d0000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273000000e811010081000000ca000000130000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e727300007c12010082000000a1010000470000007c12010082000000b4010000200000007c12010082000000b4010000110000007c12010082000000b8010000260000002f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e727340130100880000009500000001000000cd0b01007e000000cd0100000500000054150100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f722f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730068140100830000002f0100001800000000000000617474656d707420746f206164642077697468206f766572666c6f773517010082000000900100004f00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041e0aa040be504617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a54150100000000009f150100010000002f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e72730000b01501006e0000005a0000001c000000b01501006e0000005a00000009000000b01501006e0000005a00000031000000b01501006e0000006500000009000000b01501006e000000830000001a000000b01501006e0000008d0000002100000045636473615265636f766572794661696c656443616c6c52756e74696d654661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f64652f55736572732f73657267656a73616b61632f2e7275737475702f746f6f6c636861696e732f6e696768746c792d323032332d30312d30342d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e727300351701008200000082010000470041d0af040bcb01617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f73657267656a73616b61632f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e362e352f7372632f636f6465632e7273000000f117010068000000770000000e0000004572726f72000000190000001c0000001600000014000000190000004f140100331401001d14010009140100f01301","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"nightly-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"identity","version":"0.1.0","authors":["Master Union "]},"spec":{"constructors":[{"args":[],"default":false,"docs":[],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x9bae9d5e"},{"args":[{"label":"chains","type":{"displayName":["Vec"],"type":13}},{"label":"chain_ids","type":{"displayName":["Vec"],"type":9}}],"default":false,"docs":[],"label":"init_with_chains","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":10},"selector":"0x0935da88"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":7},"balance":{"displayName":["Balance"],"type":36},"blockNumber":{"displayName":["BlockNumber"],"type":3},"chainExtension":{"displayName":["ChainExtension"],"type":39},"hash":{"displayName":["Hash"],"type":37},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":38}},"events":[{"args":[{"docs":[" Owner of the created identity."],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":7}},{"docs":[" The \`IdentityNo\` associated with the created identity."],"indexed":false,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}}],"docs":["Events"],"label":"IdentityCreated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"docs":[" The chain on which a new address has been added."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The newly added address."],"indexed":false,"label":"address","type":{"displayName":["EncryptedAddress"],"type":5}}],"docs":[],"label":"AddressAdded"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"docs":[" The chain on which the address has been updated."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The updated address value."],"indexed":false,"label":"updated_address","type":{"displayName":["EncryptedAddress"],"type":5}}],"docs":[],"label":"AddressUpdated"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got updated."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"docs":[" The chain on which the address has been removed."],"indexed":false,"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"AddressRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that got removed."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}}],"docs":[],"label":"IdentityRemoved"},{"args":[{"docs":[" The \`ChainId\` that is associated with the newly added chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The address type used on the chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainAdded"},{"args":[{"docs":[" The \`ChainId\` that is associated with the updated chain."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"docs":[" The address type used on the updated chain."],"indexed":false,"label":"account_type","type":{"displayName":["AccountType"],"type":15}}],"docs":[],"label":"ChainUpdated"},{"args":[{"docs":[" The \`ChainId\` that is associated with the chain that got"," removed."],"indexed":true,"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"docs":[],"label":"ChainRemoved"},{"args":[{"docs":[" The \`IdentityNo\` of the identity that set a recovery account."],"indexed":true,"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"docs":[" The newly set recovery account."],"indexed":false,"label":"recovery_account","type":{"displayName":["AccountId"],"type":7}}],"docs":[],"label":"RecoveryAccountSet"}],"lang_error":{"displayName":["ink","LangError"],"type":12},"messages":[{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}}],"default":false,"docs":[" Returns the \`IdentityInfo\` of an identity that is associated with"," the provided \`IdentityNo\`."],"label":"identity","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xcbfefbec"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"owner_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x99720c1e"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Returns the owner of an identity."],"label":"identity_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":21},"selector":"0x713ca232"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the chain name that is associated with the specified \`ChainId\`."],"label":"chain_info_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":23},"selector":"0x59d847e9"},{"args":[{"label":"receiver","type":{"displayName":["IdentityNo"],"type":3}},{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Returns the destination address of a transaction that needs to be"," routed to the specified identity on the specified chain."],"label":"transaction_destination","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":25},"selector":"0x525505e4"},{"args":[{"label":"network","type":{"displayName":["Network"],"type":4}}],"default":false,"docs":[" A list of all the available chains each associated with the associated"," \`ChainId\`."],"label":"available_chains","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":28},"selector":"0xa5cf243e"},{"args":[],"default":false,"docs":[" Creates an identity and returns the \`IdentityNo\`.",""," A user can only create one identity."],"label":"create_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":31},"selector":"0xfb893664"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":5}}],"default":false,"docs":[" Adds an address for a given chain"],"label":"add_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x71cc798d"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}},{"label":"address","type":{"displayName":["EncryptedAddress"],"type":5}}],"default":false,"docs":[" Updates the address of the given chain"],"label":"update_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x892f75e4"},{"args":[{"label":"chain","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[" Removes the address by chain"],"label":"remove_address","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xdca7a60f"},{"args":[],"default":false,"docs":[" Removes an identity"],"label":"remove_identity","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x08026740"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"info","type":{"displayName":["ChainInfo"],"type":14}}],"default":false,"docs":[],"label":"add_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x1cd09676"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}},{"label":"new_address_type","type":{"displayName":["Option"],"type":35}}],"default":false,"docs":[],"label":"update_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x7d5eea00"},{"args":[{"label":"chain_id","type":{"displayName":["ChainId"],"type":2}}],"default":false,"docs":[],"label":"remove_chain","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x5b23980f"},{"args":[{"label":"recovery_account","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Sets the recovery account that will be able to change the ownership"," of the identity.",""," Only callable by the identity owner."],"label":"set_recovery_account","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0xd3b93403"},{"args":[{"label":"identity_no","type":{"displayName":["IdentityNo"],"type":3}},{"label":"new_owner","type":{"displayName":["AccountId"],"type":7}}],"default":false,"docs":[" Transfers the ownership of an identity to another account.",""," Only callable by the identity owner or any account that the identity"," owner added as a proxy."],"label":"transfer_ownership","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":33},"selector":"0x107e33ea"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x7d5e603b","ty":0}},"name":"addresses"}],"name":"IdentityInfo"}},"root_key":"0x7d5e603b"}},"name":"number_to_identity"},{"layout":{"root":{"layout":{"leaf":{"key":"0xca45e900","ty":7}},"root_key":"0xca45e900"}},"name":"owner_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x7cd66cb1","ty":3}},"root_key":"0x7cd66cb1"}},"name":"identity_of"},{"layout":{"root":{"layout":{"leaf":{"key":"0x3373bd6d","ty":7}},"root_key":"0x3373bd6d"}},"name":"recovery_account_of"},{"layout":{"leaf":{"key":"0x00000000","ty":3}},"name":"latest_identity_no"},{"layout":{"root":{"layout":{"struct":{"fields":[{"layout":{"enum":{"dispatchKey":"0x793e0339","name":"AccountType","variants":{"0":{"fields":[],"name":"AccountId32"},"1":{"fields":[],"name":"AccountKey20"}}}},"name":"account_type"}],"name":"ChainInfo"}},"root_key":"0x793e0339"}},"name":"chain_info_of"},{"layout":{"leaf":{"key":"0x00000000","ty":9}},"name":"chain_ids"},{"layout":{"leaf":{"key":"0x00000000","ty":7}},"name":"admin"}],"name":"Identity"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"sequence":{"type":1}}}},{"id":1,"type":{"def":{"tuple":[2,5]}}},{"id":2,"type":{"def":{"tuple":[3,4]}}},{"id":3,"type":{"def":{"primitive":"u32"}}},{"id":4,"type":{"def":{"variant":{"variants":[{"index":0,"name":"Polkadot"},{"index":1,"name":"Kusama"}]}},"path":["common","types","Network"]}},{"id":5,"type":{"def":{"sequence":{"type":6}}}},{"id":6,"type":{"def":{"primitive":"u8"}}},{"id":7,"type":{"def":{"composite":{"fields":[{"type":8,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":8,"type":{"def":{"array":{"len":32,"type":6}}}},{"id":9,"type":{"def":{"sequence":{"type":2}}}},{"id":10,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":12}],"path":["Result"]}},{"id":11,"type":{"def":{"tuple":[]}}},{"id":12,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":13,"type":{"def":{"sequence":{"type":14}}}},{"id":14,"type":{"def":{"composite":{"fields":[{"name":"account_type","type":15,"typeName":"AccountType"}]}},"path":["common","types","ChainInfo"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":0,"name":"AccountId32"},{"index":1,"name":"AccountKey20"}]}},"path":["common","types","AccountType"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":17}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":17},{"name":"E","type":12}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":18}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":18}],"path":["Option"]}},{"id":18,"type":{"def":{"composite":{"fields":[{"name":"addresses","type":0,"typeName":"Vec<(ChainId, EncryptedAddress)>"}]}},"path":["identity","types","IdentityInfo"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":12}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":7}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":7}],"path":["Option"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"fields":[{"type":22}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":22},{"name":"E","type":12}],"path":["Result"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":3}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":3}],"path":["Option"]}},{"id":23,"type":{"def":{"variant":{"variants":[{"fields":[{"type":24}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":24},{"name":"E","type":12}],"path":["Result"]}},{"id":24,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":14}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":14}],"path":["Option"]}},{"id":25,"type":{"def":{"variant":{"variants":[{"fields":[{"type":26}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":26},{"name":"E","type":12}],"path":["Result"]}},{"id":26,"type":{"def":{"variant":{"variants":[{"fields":[{"type":5}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":5},{"name":"E","type":27}],"path":["Result"]}},{"id":27,"type":{"def":{"variant":{"variants":[{"index":0,"name":"NotAllowed"},{"index":1,"name":"IdentityDoesntExist"},{"index":2,"name":"AddressAlreadyAdded"},{"index":3,"name":"InvalidChain"},{"index":4,"name":"AddressSizeExceeded"},{"index":5,"name":"ChainNameTooLong"},{"index":6,"name":"AlreadyIdentityOwner"}]}},"path":["identity","Error"]}},{"id":28,"type":{"def":{"variant":{"variants":[{"fields":[{"type":29}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":29},{"name":"E","type":12}],"path":["Result"]}},{"id":29,"type":{"def":{"sequence":{"type":30}}}},{"id":30,"type":{"def":{"tuple":[3,14]}}},{"id":31,"type":{"def":{"variant":{"variants":[{"fields":[{"type":32}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":32},{"name":"E","type":12}],"path":["Result"]}},{"id":32,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":27}],"path":["Result"]}},{"id":33,"type":{"def":{"variant":{"variants":[{"fields":[{"type":34}],"index":0,"name":"Ok"},{"fields":[{"type":12}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":34},{"name":"E","type":12}],"path":["Result"]}},{"id":34,"type":{"def":{"variant":{"variants":[{"fields":[{"type":11}],"index":0,"name":"Ok"},{"fields":[{"type":27}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":11},{"name":"E","type":27}],"path":["Result"]}},{"id":35,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":15}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":15}],"path":["Option"]}},{"id":36,"type":{"def":{"primitive":"u128"}}},{"id":37,"type":{"def":{"composite":{"fields":[{"type":8,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":38,"type":{"def":{"primitive":"u64"}}},{"id":39,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"}`; \ No newline at end of file diff --git a/types/data/identity.json b/types/data/identity.json index 61666e7..5eabf93 100644 --- a/types/data/identity.json +++ b/types/data/identity.json @@ -6,9 +6,27 @@ "name": "Tuple", "body": { "0": { - "name": "number", + "name": "Tuple", + "body": { + "0": { + "name": "number", + "isResult": false, + "isPrimitive": true, + "isConvertable": false + }, + "1": { + "name": "Network", + "body": { + "Polkadot": null, + "Kusama": null + }, + "isResult": false, + "isPrimitive": false, + "isConvertable": false + } + }, "isResult": false, - "isPrimitive": true, + "isPrimitive": false, "isConvertable": false }, "1": { @@ -39,9 +57,27 @@ "name": "Tuple", "body": { "0": { - "name": "number", + "name": "Tuple", + "body": { + "0": { + "name": "number", + "isResult": false, + "isPrimitive": true, + "isConvertable": false + }, + "1": { + "name": "Network", + "body": { + "Polkadot": null, + "Kusama": null + }, + "isResult": false, + "isPrimitive": false, + "isConvertable": false + } + }, "isResult": false, - "isPrimitive": true, + "isPrimitive": false, "isConvertable": false }, "1": { @@ -64,12 +100,46 @@ "isConvertable": false }, "2": { + "name": "Tuple", + "body": { + "0": { + "name": "number", + "isResult": false, + "isPrimitive": true, + "isConvertable": false + }, + "1": { + "name": "Network", + "body": { + "Polkadot": null, + "Kusama": null + }, + "isResult": false, + "isPrimitive": false, + "isConvertable": false + } + }, + "isResult": false, + "isPrimitive": false, + "isConvertable": false + }, + "3": { "name": "number", "isResult": false, "isPrimitive": true, "isConvertable": false }, - "3": { + "4": { + "name": "Network", + "body": { + "Polkadot": null, + "Kusama": null + }, + "isResult": false, + "isPrimitive": false, + "isConvertable": false + }, + "5": { "name": "Array", "body": { "0": { @@ -83,20 +153,20 @@ "isPrimitive": false, "isConvertable": false }, - "4": { + "6": { "name": "number", "isResult": false, "isPrimitive": true, "isConvertable": false }, - "5": { + "7": { "name": "AccountId", "body": "string | number[]", "isResult": false, "isPrimitive": true, "isConvertable": false }, - "6": { + "8": { "name": "Array", "body": { "0": { @@ -110,13 +180,31 @@ "isPrimitive": false, "isConvertable": false }, - "7": { + "9": { "name": "Array", "body": { "0": { - "name": "number", + "name": "Tuple", + "body": { + "0": { + "name": "number", + "isResult": false, + "isPrimitive": true, + "isConvertable": false + }, + "1": { + "name": "Network", + "body": { + "Polkadot": null, + "Kusama": null + }, + "isResult": false, + "isPrimitive": false, + "isConvertable": false + } + }, "isResult": false, - "isPrimitive": true, + "isPrimitive": false, "isConvertable": false } }, @@ -124,13 +212,13 @@ "isPrimitive": false, "isConvertable": false }, - "9": { + "11": { "name": "null", "isResult": false, "isPrimitive": true, "isConvertable": false }, - "10": { + "12": { "name": "LangError", "body": { "CouldNotReadInput": null @@ -139,7 +227,7 @@ "isPrimitive": false, "isConvertable": false }, - "11": { + "13": { "name": "Array", "body": { "0": { @@ -165,7 +253,7 @@ "isPrimitive": false, "isConvertable": false }, - "12": { + "14": { "name": "ChainInfo", "body": { "accountType": { @@ -183,7 +271,7 @@ "isPrimitive": false, "isConvertable": false }, - "13": { + "15": { "name": "AccountType", "body": { "AccountId32": null, @@ -193,7 +281,7 @@ "isPrimitive": false, "isConvertable": false }, - "14": { + "16": { "name": "Result; } export interface AddressUpdated { identityNo: number; - chain: number; + chain: [number, ReturnTypes.Network]; updatedAddress: Array; } export interface AddressRemoved { identityNo: number; - chain: number; + chain: [number, ReturnTypes.Network]; } export interface IdentityRemoved { @@ -28,17 +28,17 @@ export interface IdentityRemoved { } export interface ChainAdded { - chainId: number; + chainId: [number, ReturnTypes.Network]; accountType: ReturnTypes.AccountType; } export interface ChainUpdated { - chainId: number; + chainId: [number, ReturnTypes.Network]; accountType: ReturnTypes.AccountType; } export interface ChainRemoved { - chainId: number; + chainId: [number, ReturnTypes.Network]; } export interface RecoveryAccountSet { diff --git a/types/mixed-methods/identity.ts b/types/mixed-methods/identity.ts index 2730c9a..4970f91 100644 --- a/types/mixed-methods/identity.ts +++ b/types/mixed-methods/identity.ts @@ -47,7 +47,7 @@ export default class Methods { identityNo: (number | string | BN), __options: GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identity", [identityNo], __options, (result) => { return handleReturnType(result, getTypeDescription(14, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identity", [identityNo], __options, (result) => { return handleReturnType(result, getTypeDescription(16, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -60,7 +60,7 @@ export default class Methods { identityNo: (number | string | BN), __options: GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "ownerOf", [identityNo], __options, (result) => { return handleReturnType(result, getTypeDescription(17, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "ownerOf", [identityNo], __options, (result) => { return handleReturnType(result, getTypeDescription(19, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -73,46 +73,48 @@ export default class Methods { owner: ArgumentTypes.AccountId, __options: GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identityOf", [owner], __options, (result) => { return handleReturnType(result, getTypeDescription(19, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identityOf", [owner], __options, (result) => { return handleReturnType(result, getTypeDescription(21, DATA_TYPE_DESCRIPTIONS)); }); } /** * chainInfoOf * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @returns { Result } */ "chainInfoOf" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], __options: GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "chainInfoOf", [chainId], __options, (result) => { return handleReturnType(result, getTypeDescription(21, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "chainInfoOf", [chainId], __options, (result) => { return handleReturnType(result, getTypeDescription(23, DATA_TYPE_DESCRIPTIONS)); }); } /** * transactionDestination * * @param { (number | string | BN) } receiver, - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @returns { Result, ReturnTypes.Error>, ReturnTypes.LangError> } */ "transactionDestination" ( receiver: (number | string | BN), - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], __options: GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.Error>, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transactionDestination", [receiver, chain], __options, (result) => { return handleReturnType(result, getTypeDescription(23, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transactionDestination", [receiver, chain], __options, (result) => { return handleReturnType(result, getTypeDescription(25, DATA_TYPE_DESCRIPTIONS)); }); } /** * availableChains * + * @param { ArgumentTypes.Network } network, * @returns { Result, ReturnTypes.LangError> } */ "availableChains" ( + network: ArgumentTypes.Network, __options: GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "availableChains", [], __options, (result) => { return handleReturnType(result, getTypeDescription(26, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "availableChains", [network], __options, (result) => { return handleReturnType(result, getTypeDescription(28, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -131,12 +133,12 @@ export default class Methods { /** * addAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @param { Array<(number | string | BN)> } address, * @returns { void } */ "addAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], address: Array<(number | string | BN)>, __options: GasLimit, ){ @@ -148,12 +150,12 @@ export default class Methods { /** * updateAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @param { Array<(number | string | BN)> } address, * @returns { void } */ "updateAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], address: Array<(number | string | BN)>, __options: GasLimit, ){ @@ -165,11 +167,11 @@ export default class Methods { /** * removeAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @returns { void } */ "removeAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], __options: GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeAddress", (events: EventRecord) => { @@ -193,12 +195,12 @@ export default class Methods { /** * addChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @param { ArgumentTypes.ChainInfo } info, * @returns { void } */ "addChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], info: ArgumentTypes.ChainInfo, __options: GasLimit, ){ @@ -210,12 +212,12 @@ export default class Methods { /** * updateChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @param { ArgumentTypes.AccountType | null } newAddressType, * @returns { void } */ "updateChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], newAddressType: ArgumentTypes.AccountType | null, __options: GasLimit, ){ @@ -227,11 +229,11 @@ export default class Methods { /** * removeChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @returns { void } */ "removeChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], __options: GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeChain", (events: EventRecord) => { diff --git a/types/query/identity.ts b/types/query/identity.ts index f260a20..9532ff2 100644 --- a/types/query/identity.ts +++ b/types/query/identity.ts @@ -39,7 +39,7 @@ export default class Methods { identityNo: (number | string | BN), __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identity", [identityNo], __options , (result) => { return handleReturnType(result, getTypeDescription(14, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identity", [identityNo], __options , (result) => { return handleReturnType(result, getTypeDescription(16, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -52,7 +52,7 @@ export default class Methods { identityNo: (number | string | BN), __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "ownerOf", [identityNo], __options , (result) => { return handleReturnType(result, getTypeDescription(17, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "ownerOf", [identityNo], __options , (result) => { return handleReturnType(result, getTypeDescription(19, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -65,46 +65,48 @@ export default class Methods { owner: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identityOf", [owner], __options , (result) => { return handleReturnType(result, getTypeDescription(19, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "identityOf", [owner], __options , (result) => { return handleReturnType(result, getTypeDescription(21, DATA_TYPE_DESCRIPTIONS)); }); } /** * chainInfoOf * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @returns { Result } */ "chainInfoOf" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], __options ? : GasLimit, ): Promise< QueryReturnType< Result > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "chainInfoOf", [chainId], __options , (result) => { return handleReturnType(result, getTypeDescription(21, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "chainInfoOf", [chainId], __options , (result) => { return handleReturnType(result, getTypeDescription(23, DATA_TYPE_DESCRIPTIONS)); }); } /** * transactionDestination * * @param { (number | string | BN) } receiver, - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @returns { Result, ReturnTypes.Error>, ReturnTypes.LangError> } */ "transactionDestination" ( receiver: (number | string | BN), - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.Error>, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transactionDestination", [receiver, chain], __options , (result) => { return handleReturnType(result, getTypeDescription(23, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transactionDestination", [receiver, chain], __options , (result) => { return handleReturnType(result, getTypeDescription(25, DATA_TYPE_DESCRIPTIONS)); }); } /** * availableChains * + * @param { ArgumentTypes.Network } network, * @returns { Result, ReturnTypes.LangError> } */ "availableChains" ( + network: ArgumentTypes.Network, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "availableChains", [], __options , (result) => { return handleReturnType(result, getTypeDescription(26, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "availableChains", [network], __options , (result) => { return handleReturnType(result, getTypeDescription(28, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -115,50 +117,50 @@ export default class Methods { "createIdentity" ( __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "createIdentity", [], __options , (result) => { return handleReturnType(result, getTypeDescription(29, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "createIdentity", [], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); } /** * addAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @param { Array<(number | string | BN)> } address, * @returns { Result, ReturnTypes.LangError> } */ "addAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], address: Array<(number | string | BN)>, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "addAddress", [chain, address], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "addAddress", [chain, address], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** * updateAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @param { Array<(number | string | BN)> } address, * @returns { Result, ReturnTypes.LangError> } */ "updateAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], address: Array<(number | string | BN)>, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "updateAddress", [chain, address], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "updateAddress", [chain, address], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** * removeAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @returns { Result, ReturnTypes.LangError> } */ "removeAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeAddress", [chain], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeAddress", [chain], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -169,50 +171,50 @@ export default class Methods { "removeIdentity" ( __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeIdentity", [], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeIdentity", [], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** * addChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @param { ArgumentTypes.ChainInfo } info, * @returns { Result, ReturnTypes.LangError> } */ "addChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], info: ArgumentTypes.ChainInfo, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "addChain", [chainId, info], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "addChain", [chainId, info], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** * updateChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @param { ArgumentTypes.AccountType | null } newAddressType, * @returns { Result, ReturnTypes.LangError> } */ "updateChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], newAddressType: ArgumentTypes.AccountType | null, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "updateChain", [chainId, newAddressType], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "updateChain", [chainId, newAddressType], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** * removeChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @returns { Result, ReturnTypes.LangError> } */ "removeChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeChain", [chainId], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "removeChain", [chainId], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -225,7 +227,7 @@ export default class Methods { recoveryAccount: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "setRecoveryAccount", [recoveryAccount], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "setRecoveryAccount", [recoveryAccount], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } /** @@ -240,7 +242,7 @@ export default class Methods { newOwner: ArgumentTypes.AccountId, __options ? : GasLimit, ): Promise< QueryReturnType< Result, ReturnTypes.LangError> > >{ - return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transferOwnership", [identityNo, newOwner], __options , (result) => { return handleReturnType(result, getTypeDescription(31, DATA_TYPE_DESCRIPTIONS)); }); + return queryOkJSON( this.__apiPromise, this.__nativeContract, this.__callerAddress, "transferOwnership", [identityNo, newOwner], __options , (result) => { return handleReturnType(result, getTypeDescription(33, DATA_TYPE_DESCRIPTIONS)); }); } } \ No newline at end of file diff --git a/types/tx-sign-and-send/identity.ts b/types/tx-sign-and-send/identity.ts index 597dc12..2402acb 100644 --- a/types/tx-sign-and-send/identity.ts +++ b/types/tx-sign-and-send/identity.ts @@ -73,10 +73,10 @@ export default class Methods { /** * chainInfoOf * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, */ "chainInfoOf" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], __options ? : GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "chainInfoOf", (events: EventRecord) => { @@ -88,11 +88,11 @@ export default class Methods { * transactionDestination * * @param { (number | string | BN) } receiver, - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, */ "transactionDestination" ( receiver: (number | string | BN), - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], __options ? : GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "transactionDestination", (events: EventRecord) => { @@ -103,13 +103,15 @@ export default class Methods { /** * availableChains * + * @param { ArgumentTypes.Network } network, */ "availableChains" ( + network: ArgumentTypes.Network, __options ? : GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "availableChains", (events: EventRecord) => { return decodeEvents(events, this.__nativeContract, EVENT_DATA_TYPE_DESCRIPTIONS); - }, [], __options); + }, [network], __options); } /** @@ -127,11 +129,11 @@ export default class Methods { /** * addAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @param { Array<(number | string | BN)> } address, */ "addAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], address: Array<(number | string | BN)>, __options ? : GasLimit, ){ @@ -143,11 +145,11 @@ export default class Methods { /** * updateAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, * @param { Array<(number | string | BN)> } address, */ "updateAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], address: Array<(number | string | BN)>, __options ? : GasLimit, ){ @@ -159,10 +161,10 @@ export default class Methods { /** * removeAddress * - * @param { (number | string | BN) } chain, + * @param { [(number | string | BN), ArgumentTypes.Network] } chain, */ "removeAddress" ( - chain: (number | string | BN), + chain: [(number | string | BN), ArgumentTypes.Network], __options ? : GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeAddress", (events: EventRecord) => { @@ -185,11 +187,11 @@ export default class Methods { /** * addChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @param { ArgumentTypes.ChainInfo } info, */ "addChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], info: ArgumentTypes.ChainInfo, __options ? : GasLimit, ){ @@ -201,11 +203,11 @@ export default class Methods { /** * updateChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, * @param { ArgumentTypes.AccountType | null } newAddressType, */ "updateChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], newAddressType: ArgumentTypes.AccountType | null, __options ? : GasLimit, ){ @@ -217,10 +219,10 @@ export default class Methods { /** * removeChain * - * @param { (number | string | BN) } chainId, + * @param { [(number | string | BN), ArgumentTypes.Network] } chainId, */ "removeChain" ( - chainId: (number | string | BN), + chainId: [(number | string | BN), ArgumentTypes.Network], __options ? : GasLimit, ){ return txSignAndSend( this.__apiPromise, this.__nativeContract, this.__keyringPair, "removeChain", (events: EventRecord) => { diff --git a/types/types-arguments/identity.ts b/types/types-arguments/identity.ts index debecf7..6213d97 100644 --- a/types/types-arguments/identity.ts +++ b/types/types-arguments/identity.ts @@ -1,5 +1,10 @@ import type BN from 'bn.js'; +export enum Network { + polkadot = 'Polkadot', + kusama = 'Kusama' +} + export type AccountId = string | number[] export enum LangError { @@ -16,7 +21,7 @@ export enum AccountType { } export type IdentityInfo = { - addresses: Array<[(number | string | BN), Array<(number | string | BN)>]> + addresses: Array<[[(number | string | BN), Network], Array<(number | string | BN)>]> } export enum Error { diff --git a/types/types-returns/identity.ts b/types/types-returns/identity.ts index f53dd98..2d0b63b 100644 --- a/types/types-returns/identity.ts +++ b/types/types-returns/identity.ts @@ -1,6 +1,11 @@ import type BN from 'bn.js'; import type {ReturnNumber} from '@727-ventures/typechain-types'; +export enum Network { + polkadot = 'Polkadot', + kusama = 'Kusama' +} + export type AccountId = string | number[] export enum LangError { @@ -17,7 +22,7 @@ export enum AccountType { } export type IdentityInfo = { - addresses: Array<[number, Array]> + addresses: Array<[[number, Network], Array]> } export enum Error {