UNPKG

wrapped-wit-contracts

Version:
161 lines (160 loc) 41.6 kB
{ "_format": "hh-sol-artifact-1", "contractName": "WrappedWITLib", "sourceName": "contracts/WrappedWITLib.sol", "abi": [ { "inputs": [], "name": "EmptyBuffer", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "range", "type": "uint256" } ], "name": "IndexOutOfBounds", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "InvalidLengthEncoding", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "read", "type": "uint256" }, { "internalType": "uint256", "name": "expected", "type": "uint256" } ], "name": "UnexpectedMajorType", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "unexpected", "type": "uint256" } ], "name": "UnsupportedMajorType", "type": "error" }, { "inputs": [ { "components": [ { "internalType": "enum Witnet.ResultStatus", "name": "status", "type": "Witnet.ResultStatus" }, { "internalType": "enum Witnet.RadonDataTypes", "name": "dataType", "type": "Witnet.RadonDataTypes" }, { "internalType": "Witnet.TransactionHash", "name": "drTxHash", "type": "bytes32" }, { "internalType": "Witnet.Timestamp", "name": "timestamp", "type": "uint64" }, { "components": [ { "components": [ { "internalType": "bytes", "name": "data", "type": "bytes" }, { "internalType": "uint256", "name": "cursor", "type": "uint256" } ], "internalType": "struct WitnetBuffer.Buffer", "name": "buffer", "type": "tuple" }, { "internalType": "uint8", "name": "initialByte", "type": "uint8" }, { "internalType": "uint8", "name": "majorType", "type": "uint8" }, { "internalType": "uint8", "name": "additionalInformation", "type": "uint8" }, { "internalType": "uint64", "name": "len", "type": "uint64" }, { "internalType": "uint64", "name": "tag", "type": "uint64" } ], "internalType": "struct WitnetCBOR.CBOR", "name": "value", "type": "tuple" } ], "internalType": "struct Witnet.DataResult", "name": "witOracleProofOfReserve", "type": "tuple" } ], "name": "parseWitOracleProofOfReserve", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x6124a0610034600b8282823980515f1a607314602857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004a575f3560e01c80633752120b1461004e5780635d933eb71461008057806367c4440f146100b0575b5f5ffd5b818015610059575f5ffd5b5061006d610068366004611cfe565b6100db565b6040519081526020015b60405180910390f35b81801561008b575f5ffd5b5061009f61009a366004611d3c565b610354565b604051610077959493929190611dfe565b6100c36100be366004612051565b6106c7565b6040516001600160401b039091168152602001610077565b5f8181525f51602061242b5f395f51905f5260205260409020545f19811461034d576040805160018082528183019092525f91816020015b6060815260200190600190039081610113579050509050610133836107e9565b815f8151811061014557610145612103565b60200260200101819052505f846001600160a01b031663f0e271bc836101755f51602061244b5f395f51905f5290565b6004016040518363ffffffff1660e01b8152600401610195929190612117565b6020604051808303815f875af11580156101b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d59190612265565b9050856001600160a01b0316633b3195b73483604051806060016040528061010061ffff1681526020016102135f51602061244b5f395f51905f5290565b6003015461ffff1681526020015f51602061244b5f395f51905f526003015464010000000090046001600160401b039081169091526040805180820182523081526202d2a86020808301918252835160e08a901b6001600160e01b03191681526004810197909752855161ffff90811660248901529086015116604487015293909101519091166064840152516001600160a01b031660848301525162ffffff1660a482015260c40160206040518083038185885af11580156102d8573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906102fd9190612265565b5f8581525f51602061242b5f395f51905f52602090815260408083208490558383527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c59009091529020859055925050505b9392505050565b5f8381527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c5900602052604081205490606090819080846103cd5760405162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a59081c5d595c9e481a5960821b60448201526064015b60405180910390fd5b5f8581525f51602061242b5f395f51905f5260205260409020546001016104365760405162461bcd60e51b815260206004820152601a60248201527f7769742f7772617020747820616c7265616479206d696e74656400000000000060448201526064016103c4565b5f61044387890189612051565b90505f815160ff8111156104595761045961227c565b146104a65760405162461bcd60e51b815260206004820152601860248201527f717565727920736f6c7665642077697468206572726f7273000000000000000060448201526064016103c4565b6001816020015160138111156104be576104be61227c565b146105025760405162461bcd60e51b81526020600482015260146024820152731a5b9d985b1a59081c5d595c9e481c995cdd5b1d60621b60448201526064016103c4565b5f8681525f51602061242b5f395f51905f52602052604081205f199055610528826108f7565b905061054c815f8151811061053f5761053f612103565b60200260200101516109cd565b6001600160401b03166001146105a45760405162461bcd60e51b815260206004820152601860248201527f756e66696e616c697a656420717565727920726573756c74000000000000000060448201526064016103c4565b6105c7816002815181106105ba576105ba612103565b6020026020010151610a26565b95506105df816003815181106105ba576105ba612103565b94506106076106026105fd836001815181106105ba576105ba612103565b610b28565b610c12565b93505f6106208260048151811061053f5761053f612103565b90506106388260058151811061053f5761053f612103565b93506106655f51602061244b5f395f51905f52546001600160401b0383811691600160c01b900416610c25565b156106b957835f51602061244b5f395f51905f5260010180545f906106949084906001600160401b03166122a4565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b505050939792965093509350565b5f606081835160ff8111156106de576106de61227c565b036106ef576106ec83610c3b565b90505b5f835160ff8111156107035761070361227c565b14801561073b575061073b5f51602061244b5f395f51905f525460608501516001600160401b0390811691600160c01b900416610c25565b8015610748575080516003145b6107855760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081c995c1bdc9d60921b60448201526064016103c4565b8060028151811061079857610798612103565b6020026020010151816001815181106107b3576107b3612103565b6020026020010151825f815181106107cd576107cd612103565b60200260200101516107df91906122a4565b61034d91906122a4565b6040805181815260608181018352915f91906020820181803683370190505090505f5b81518160ff1610156108f0576108546004856108296002856122d7565b60ff166020811061083c5761083c612103565b1a60f81b6001600160f81b031916901c60f81c610cce565b828261085f816122f8565b935060ff168151811061087457610874612103565b60200101906001600160f81b03191690815f1a9053506108b5846108996002846122d7565b60ff16602081106108ac576108ac612103565b1a600f16610cce565b82826108c0816122f8565b935060ff16815181106108d5576108d5612103565b60200101906001600160f81b03191690815f1a90535061080c565b5092915050565b606081600161090582610d01565b158015610937575080601381111561091f5761091f61227c565b826020015160138111156109355761093561227c565b145b61097d5760405162461bcd60e51b815260206004820152601760248201527663626f723a2063616e6e6f74206665746368206461746160481b60448201526064016103c4565b61098a8460800151610d0e565b92506109998260800151610eb9565b826020019060138111156109af576109af61227c565b908160138111156109c2576109c261227c565b815250505050919050565b5f815f8060ff16826040015160ff1614610a0b57604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b610a1c845f01518560600151610f80565b92505b5050919050565b60608160038060ff16826040015160ff1614610a6657604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b610a77845f01518560600151610f80565b6001600160401b03166080850181905267fffffffffffffffe1901610b11575f5b80610b0b575f610aaf865f01518760400151611047565b90506001600160401b038082161015610b005784610ad9610ad1600484612316565b8851906110ec565b604051602001610aea929190612343565b6040516020818303038152906040529450610b05565b600191505b50610a98565b50610a1f565b60808401518451610b21916110ec565b9250610a1f565b60606002825181610b3b57610b3b6122c3565b046001600160401b03811115610b5357610b53611e54565b6040519080825280601f01601f191660200182016040528015610b7d576020820181803683370190505b5090505f5b8151811015610c0c575f610bb1848360020281518110610ba457610ba4612103565b016020015160f81c611270565b90505f610bcf858460020260010181518110610ba457610ba4612103565b905080826010020160f81b848481518110610bec57610bec612103565b60200101906001600160f81b03191690815f1a9053505050600101610b82565b50919050565b5f610c1c82611334565b60601c92915050565b6001600160401b03808216908316115b92915050565b6060816001610c4982610d01565b158015610c7b5750806013811115610c6357610c6361227c565b82602001516013811115610c7957610c7961227c565b145b610cc15760405162461bcd60e51b815260206004820152601760248201527663626f723a2063616e6e6f74206665746368206461746160481b60448201526064016103c4565b61098a8460800151611340565b5f600a8260ff1610610ced57610ce5826057612371565b60f81b610c35565b610cf8826030612371565b60f81b92915050565b5f610c35825f0151611482565b60608160048060ff16826040015160ff1614610d4e57604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b5f610d60855f01518660600151610f80565b9050610d6d8160016122a4565b6001600160401b03166001600160401b03811115610d8d57610d8d611e54565b604051908082528060200260200182016040528015610dc657816020015b610db3611ca2565b815260200190600190039081610dab5790505b5093505f5b816001600160401b0316811015610e8957610de5866114b9565b9550610df0866114e1565b858281518110610e0257610e02612103565b6020026020010181905250600460ff16866040015160ff1603610e5a575f610e2987610d0e565b90508060018251610e3a919061238a565b81518110610e4a57610e4a612103565b6020026020010151965050610e81565b600560ff16866040015160ff1603610e76575f610e2987611578565b610e7f8661175e565b505b600101610dcb565b508484826001600160401b031681518110610ea657610ea6612103565b6020026020010181905250505050919050565b5f610ecd8251805151602090910151101590565b610f7b576006826040015160ff1611610f155760408201516502020183808360d11b9060ff1660078110610f0357610f03612103565b1a6013811115610c3557610c3561227c565b816040015160ff16600703610f7b57816060015160ff1660141480610f415750816060015160ff166015145b15610f4e57506002919050565b6019826060015160ff1610158015610f6e5750601b826060015160ff1611155b15610f7b57506005919050565b919050565b5f60188260ff161015610f97575060ff8116610c35565b8160ff16601803610fb557610fab8361191e565b60ff169050610c35565b8160ff16601903610fd457610fc98361197e565b61ffff169050610c35565b8160ff16601a03610ff557610fe8836119e9565b63ffffffff169050610c35565b8160ff16601b036110105761100983611a47565b9050610c35565b8160ff16601f0361102957506001600160401b03610c35565b604051636d785b1360e01b815260ff831660048201526024016103c4565b5f5f6110528461191e565b90508060ff1660ff0361106f576001600160401b03915050610c35565b61107c8482601f16610f80565b91506001600160401b03808316106110b257604051636d785b1360e01b81526001600160401b03831660048201526024016103c4565b60ff83166007600583901c16146108f05760405161800560e51b81526007600583901c16600482015260ff841660248201526044016103c4565b6060816001600160401b03166001600160401b0381111561110f5761110f611e54565b6040519080825280601f01601f191660200182016040528015611139576020820181803683370190505b5090505f5b826001600160401b0316816001600160401b03161015611267575f6111628561191e565b905060808116156112295760e08160ff16101561119e576111828561191e565b603f16600682601f1660ff16901b179050600184039350611229565b60f08160ff1610156111e3576111b38561191e565b603f1660066111c18761191e565b603f1660ff16901b600c83600f1660ff16901b17179050600284039350611229565b6111ec8561191e565b603f1660066111fa8761191e565b603f16901b600c61120a8861191e565b603f1660ff16901b601284600f1660ff16901b17171790506003840393505b8060f81b83836001600160401b03168151811061124857611248612103565b60200101906001600160f81b03191690815f1a9053505060010161113e565b50908152919050565b5f60308260ff1610158015611289575060398260ff1611155b1561129957610c3560308361239d565b60418260ff16101580156112b1575060468260ff1611155b156112cc576112c160418361239d565b610c3590600a612371565b60618260ff16101580156112e4575060668260ff1611155b156112f4576112c160618361239d565b60405162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103432bc1031b430b930b1ba32b960591b60448201526064016103c4565b5f610c35826014611aa5565b60608160048060ff16826040015160ff161461138057604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b5f611392855f01518660600151610f80565b90506001600160401b03808216101561145657806001600160401b03166001600160401b038111156113c6576113c6611e54565b6040519080825280602002602001820160405280156113ef578160200160208202803683370190505b5093505f5b816001600160401b0316811015611450575f611412875f0151611b1a565b905061141d816109cd565b86838151811061142f5761142f612103565b6001600160401b0390921660209283029190910190910152506001016113f4565b5061147a565b604051636d785b1360e01b81526001600160401b03821660048201526024016103c4565b505050919050565b5f60f08260ff8111156114975761149761227c565b1480610c35575060f18260ff8111156114b2576114b261227c565b1492915050565b6114c1611ca2565b815180515160209091015110156114dd578151610c3590611b1a565b5090565b6114e9611ca2565b6040805160c0810180835284516101008301845260609091525f60e0830152825180840190935280518352602090810151908301529081908152602001836020015160ff168152602001836040015160ff168152602001836060015160ff16815260200183608001516001600160401b031681526020018360a001516001600160401b03168152509050919050565b60608160058060ff16826040015160ff16146115b857604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b5f6115ca855f01518660600151610f80565b6115d59060026123b6565b90506115e28160016122a4565b6001600160401b03166001600160401b0381111561160257611602611e54565b60405190808252806020026020018201604052801561163b57816020015b611628611ca2565b8152602001906001900390816116205790505b5093505f5b816001600160401b0316811015610e895761165a866114b9565b9550611665866114e1565b85828151811061167757611677612103565b602090810291909101015261168d6002826123d8565b1580156116a25750604086015160ff16600314155b156116d057604080870151905161800560e51b815260ff9091166004820152600360248201526044016103c4565b604086015160ff16600414806116ed5750604086015160ff166005145b1561174b5760408601515f9060ff166004146117115761170c87611578565b61171a565b61171a87610d0e565b9050806001825161172b919061238a565b8151811061173b5761173b612103565b6020026020010151965050611756565b6117548661175e565b505b600101611640565b611766611ca2565b604082015160ff1615806117815750604082015160ff166001145b806117ba5750604082015160ff1660071480156117a657506019826060015160ff1610155b80156117ba5750601b826060015160ff1611155b156117ec576117c882611c37565b6001600160401b0316825f01516020018181516117e591906123eb565b9052505090565b604082015160ff16600314806118095750604082015160ff166002145b1561184a575f611820835f01518460600151610f80565b9050806001600160401b0316835f015160200181815161184091906123eb565b9052506114dd9050565b604082015160ff16600414806118675750604082015160ff166005145b1561188f5761187d825f01518360600151610f80565b6001600160401b031660808301525090565b604082015160ff1660071415806118c15750816060015160ff166014141580156118c15750816060015160ff16601514155b156114dd5760405162461bcd60e51b815260206004820152602760248201527f5769746e657443424f522e736b69703a20756e737570706f72746564206d616a6044820152666f72207479706560c81b60648201526084016103c4565b5f8160200151825f01515180821115611954576040516363a056dd60e01b815260048101839052602481018290526044016103c4565b8351602085018051808301600101519550908190611971826123fe565b8152505050505050919050565b5f8160200151600261199091906123eb565b825151808211156119be576040516363a056dd60e01b815260048101839052602481018290526044016103c4565b83516020850180516002818401810151965090916119dc82846123eb565b9052509395945050505050565b5f816020015160046119fb91906123eb565b82515180821115611a29576040516363a056dd60e01b815260048101839052602481018290526044016103c4565b83516020850180516004818401810151965090916119dc82846123eb565b5f81602001516008611a5991906123eb565b82515180821115611a87576040516363a056dd60e01b815260048101839052602481018290526044016103c4565b83516020850180516008818401810151965090916119dc82846123eb565b5f60208260ff161115611aba57611aba612416565b5f8260ff16845111611acd578351611ad2565b8260ff165b90505f5b81811015611b125780600802858281518110611af457611af4612103565b01602001516001600160f81b031916901c9290921791600101611ad6565b505092915050565b611b22611ca2565b81515182905f03611b46576040516309036d4760e21b815260040160405180910390fd5b5f60ff816001600160401b038160015b8015611bc757611b658961191e565b955081611b71816123fe565b6007600589901c169650601f881695509250506005198501611bc0576020890151611b9c8a86610f80565b9350808a60200151611bae919061238a565b611bb890846123eb565b925050611b56565b505f611b56565b600760ff86161115611bf15760405163bd2ac87960e01b815260ff861660048201526024016103c4565b506040805160c08101825298895260ff95861660208a015293851693880193909352921660608601526001600160401b0390811660808601521660a08401525090919050565b5f6018826060015160ff161015611c4f57505f919050565b601c826060015160ff161015611c7e5760188260600151611c70919061239d565b60ff166001901b9050919050565b6060820151604051636d785b1360e01b815260ff90911660048201526024016103c4565b604080516101008101909152606060c082019081525f60e0830152819081525f6020820181905260408201819052606082018190526080820181905260a09091015290565b6001600160a01b0381168114611cfb575f5ffd5b50565b5f5f5f60608486031215611d10575f5ffd5b8335611d1b81611ce7565b92506020840135611d2b81611ce7565b929592945050506040919091013590565b5f5f5f60408486031215611d4e575f5ffd5b8335925060208401356001600160401b03811115611d6a575f5ffd5b8401601f81018613611d7a575f5ffd5b80356001600160401b03811115611d8f575f5ffd5b866020828401011115611da0575f5ffd5b939660209190910195509293505050565b5f5b83811015611dcb578181015183820152602001611db3565b50505f910152565b5f8151808452611dea816020860160208601611db1565b601f01601f19169290920160200192915050565b85815260a060208201525f611e1660a0830187611dd3565b8281036040840152611e288187611dd3565b6001600160a01b0395909516606084015250506001600160401b03919091166080909101529392505050565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715611e8a57611e8a611e54565b60405290565b604080519081016001600160401b0381118282101715611e8a57611e8a611e54565b60405160a081016001600160401b0381118282101715611e8a57611e8a611e54565b604051601f8201601f191681016001600160401b0381118282101715611efc57611efc611e54565b604052919050565b80356001600160401b0381168114610f7b575f5ffd5b803560ff81168114610f7b575f5ffd5b5f60c08284031215611f3a575f5ffd5b611f42611e68565b905081356001600160401b03811115611f59575f5ffd5b820160408185031215611f6a575f5ffd5b611f72611e90565b81356001600160401b03811115611f87575f5ffd5b8201601f81018613611f97575f5ffd5b80356001600160401b03811115611fb057611fb0611e54565b611fc3601f8201601f1916602001611ed4565b818152876020838501011115611fd7575f5ffd5b816020840160208301375f602092820183015283529283013582840152508252612002908301611f1a565b602082015261201360408301611f1a565b604082015261202460608301611f1a565b606082015261203560808301611f04565b608082015261204660a08301611f04565b60a082015292915050565b5f60208284031215612061575f5ffd5b81356001600160401b03811115612076575f5ffd5b820160a08185031215612087575f5ffd5b61208f611eb2565b8135610100811061209e575f5ffd5b81526020820135601481106120b1575f5ffd5b6020820152604082810135908201526120cc60608301611f04565b606082015260808201356001600160401b038111156120e9575f5ffd5b6120f586828501611f2a565b608083015250949350505050565b634e487b7160e01b5f52603260045260245ffd5b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b8281101561216e57605f19878603018452612159858351611dd3565b9450602093840193919091019060010161213d565b50505050828103602084015280845480835260208301915060208160051b840101865f5260205f205f5b8381101561225757858303601f1901855281545f90600181811c908216806121c157607f821691505b6020821081036121df57634e487b7160e01b5f52602260045260245ffd5b818752602087018180156121fa57600181146122105761223c565b60ff198516825283151560051b8201955061223c565b5f888152602090205f5b858110156122365781548482015260019091019060200161221a565b83019650505b50505060209790970196509093505060019182019101612198565b509098975050505050505050565b5f60208284031215612275575f5ffd5b5051919050565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190811115610c3557610c35612290565b634e487b7160e01b5f52601260045260245ffd5b5f60ff8316806122e9576122e96122c3565b8060ff84160491505092915050565b5f60ff821660ff810361230d5761230d612290565b60010192915050565b5f6001600160401b0383168061232e5761232e6122c3565b806001600160401b0384160491505092915050565b5f8351612354818460208801611db1565b835190830190612368818360208801611db1565b01949350505050565b60ff8181168382160190811115610c3557610c35612290565b81810381811115610c3557610c35612290565b60ff8281168282160390811115610c3557610c35612290565b6001600160401b0381811683821602908116908181146108f0576108f0612290565b5f826123e6576123e66122c3565b500690565b80820180821115610c3557610c35612290565b5f6001820161240f5761240f612290565b5060010190565b634e487b7160e01b5f52600160045260245ffdfe6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58ff6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58f9a2646970667358221220b43bbdcdf1e6990af6ef1861b380dbfd3141b2b1fbdf097d97179470f57636cd64736f6c634300081c0033", "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061004a575f3560e01c80633752120b1461004e5780635d933eb71461008057806367c4440f146100b0575b5f5ffd5b818015610059575f5ffd5b5061006d610068366004611cfe565b6100db565b6040519081526020015b60405180910390f35b81801561008b575f5ffd5b5061009f61009a366004611d3c565b610354565b604051610077959493929190611dfe565b6100c36100be366004612051565b6106c7565b6040516001600160401b039091168152602001610077565b5f8181525f51602061242b5f395f51905f5260205260409020545f19811461034d576040805160018082528183019092525f91816020015b6060815260200190600190039081610113579050509050610133836107e9565b815f8151811061014557610145612103565b60200260200101819052505f846001600160a01b031663f0e271bc836101755f51602061244b5f395f51905f5290565b6004016040518363ffffffff1660e01b8152600401610195929190612117565b6020604051808303815f875af11580156101b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101d59190612265565b9050856001600160a01b0316633b3195b73483604051806060016040528061010061ffff1681526020016102135f51602061244b5f395f51905f5290565b6003015461ffff1681526020015f51602061244b5f395f51905f526003015464010000000090046001600160401b039081169091526040805180820182523081526202d2a86020808301918252835160e08a901b6001600160e01b03191681526004810197909752855161ffff90811660248901529086015116604487015293909101519091166064840152516001600160a01b031660848301525162ffffff1660a482015260c40160206040518083038185885af11580156102d8573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906102fd9190612265565b5f8581525f51602061242b5f395f51905f52602090815260408083208490558383527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c59009091529020859055925050505b9392505050565b5f8381527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c5900602052604081205490606090819080846103cd5760405162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a59081c5d595c9e481a5960821b60448201526064015b60405180910390fd5b5f8581525f51602061242b5f395f51905f5260205260409020546001016104365760405162461bcd60e51b815260206004820152601a60248201527f7769742f7772617020747820616c7265616479206d696e74656400000000000060448201526064016103c4565b5f61044387890189612051565b90505f815160ff8111156104595761045961227c565b146104a65760405162461bcd60e51b815260206004820152601860248201527f717565727920736f6c7665642077697468206572726f7273000000000000000060448201526064016103c4565b6001816020015160138111156104be576104be61227c565b146105025760405162461bcd60e51b81526020600482015260146024820152731a5b9d985b1a59081c5d595c9e481c995cdd5b1d60621b60448201526064016103c4565b5f8681525f51602061242b5f395f51905f52602052604081205f199055610528826108f7565b905061054c815f8151811061053f5761053f612103565b60200260200101516109cd565b6001600160401b03166001146105a45760405162461bcd60e51b815260206004820152601860248201527f756e66696e616c697a656420717565727920726573756c74000000000000000060448201526064016103c4565b6105c7816002815181106105ba576105ba612103565b6020026020010151610a26565b95506105df816003815181106105ba576105ba612103565b94506106076106026105fd836001815181106105ba576105ba612103565b610b28565b610c12565b93505f6106208260048151811061053f5761053f612103565b90506106388260058151811061053f5761053f612103565b93506106655f51602061244b5f395f51905f52546001600160401b0383811691600160c01b900416610c25565b156106b957835f51602061244b5f395f51905f5260010180545f906106949084906001600160401b03166122a4565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b505050939792965093509350565b5f606081835160ff8111156106de576106de61227c565b036106ef576106ec83610c3b565b90505b5f835160ff8111156107035761070361227c565b14801561073b575061073b5f51602061244b5f395f51905f525460608501516001600160401b0390811691600160c01b900416610c25565b8015610748575080516003145b6107855760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081c995c1bdc9d60921b60448201526064016103c4565b8060028151811061079857610798612103565b6020026020010151816001815181106107b3576107b3612103565b6020026020010151825f815181106107cd576107cd612103565b60200260200101516107df91906122a4565b61034d91906122a4565b6040805181815260608181018352915f91906020820181803683370190505090505f5b81518160ff1610156108f0576108546004856108296002856122d7565b60ff166020811061083c5761083c612103565b1a60f81b6001600160f81b031916901c60f81c610cce565b828261085f816122f8565b935060ff168151811061087457610874612103565b60200101906001600160f81b03191690815f1a9053506108b5846108996002846122d7565b60ff16602081106108ac576108ac612103565b1a600f16610cce565b82826108c0816122f8565b935060ff16815181106108d5576108d5612103565b60200101906001600160f81b03191690815f1a90535061080c565b5092915050565b606081600161090582610d01565b158015610937575080601381111561091f5761091f61227c565b826020015160138111156109355761093561227c565b145b61097d5760405162461bcd60e51b815260206004820152601760248201527663626f723a2063616e6e6f74206665746368206461746160481b60448201526064016103c4565b61098a8460800151610d0e565b92506109998260800151610eb9565b826020019060138111156109af576109af61227c565b908160138111156109c2576109c261227c565b815250505050919050565b5f815f8060ff16826040015160ff1614610a0b57604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b610a1c845f01518560600151610f80565b92505b5050919050565b60608160038060ff16826040015160ff1614610a6657604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b610a77845f01518560600151610f80565b6001600160401b03166080850181905267fffffffffffffffe1901610b11575f5b80610b0b575f610aaf865f01518760400151611047565b90506001600160401b038082161015610b005784610ad9610ad1600484612316565b8851906110ec565b604051602001610aea929190612343565b6040516020818303038152906040529450610b05565b600191505b50610a98565b50610a1f565b60808401518451610b21916110ec565b9250610a1f565b60606002825181610b3b57610b3b6122c3565b046001600160401b03811115610b5357610b53611e54565b6040519080825280601f01601f191660200182016040528015610b7d576020820181803683370190505b5090505f5b8151811015610c0c575f610bb1848360020281518110610ba457610ba4612103565b016020015160f81c611270565b90505f610bcf858460020260010181518110610ba457610ba4612103565b905080826010020160f81b848481518110610bec57610bec612103565b60200101906001600160f81b03191690815f1a9053505050600101610b82565b50919050565b5f610c1c82611334565b60601c92915050565b6001600160401b03808216908316115b92915050565b6060816001610c4982610d01565b158015610c7b5750806013811115610c6357610c6361227c565b82602001516013811115610c7957610c7961227c565b145b610cc15760405162461bcd60e51b815260206004820152601760248201527663626f723a2063616e6e6f74206665746368206461746160481b60448201526064016103c4565b61098a8460800151611340565b5f600a8260ff1610610ced57610ce5826057612371565b60f81b610c35565b610cf8826030612371565b60f81b92915050565b5f610c35825f0151611482565b60608160048060ff16826040015160ff1614610d4e57604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b5f610d60855f01518660600151610f80565b9050610d6d8160016122a4565b6001600160401b03166001600160401b03811115610d8d57610d8d611e54565b604051908082528060200260200182016040528015610dc657816020015b610db3611ca2565b815260200190600190039081610dab5790505b5093505f5b816001600160401b0316811015610e8957610de5866114b9565b9550610df0866114e1565b858281518110610e0257610e02612103565b6020026020010181905250600460ff16866040015160ff1603610e5a575f610e2987610d0e565b90508060018251610e3a919061238a565b81518110610e4a57610e4a612103565b6020026020010151965050610e81565b600560ff16866040015160ff1603610e76575f610e2987611578565b610e7f8661175e565b505b600101610dcb565b508484826001600160401b031681518110610ea657610ea6612103565b6020026020010181905250505050919050565b5f610ecd8251805151602090910151101590565b610f7b576006826040015160ff1611610f155760408201516502020183808360d11b9060ff1660078110610f0357610f03612103565b1a6013811115610c3557610c3561227c565b816040015160ff16600703610f7b57816060015160ff1660141480610f415750816060015160ff166015145b15610f4e57506002919050565b6019826060015160ff1610158015610f6e5750601b826060015160ff1611155b15610f7b57506005919050565b919050565b5f60188260ff161015610f97575060ff8116610c35565b8160ff16601803610fb557610fab8361191e565b60ff169050610c35565b8160ff16601903610fd457610fc98361197e565b61ffff169050610c35565b8160ff16601a03610ff557610fe8836119e9565b63ffffffff169050610c35565b8160ff16601b036110105761100983611a47565b9050610c35565b8160ff16601f0361102957506001600160401b03610c35565b604051636d785b1360e01b815260ff831660048201526024016103c4565b5f5f6110528461191e565b90508060ff1660ff0361106f576001600160401b03915050610c35565b61107c8482601f16610f80565b91506001600160401b03808316106110b257604051636d785b1360e01b81526001600160401b03831660048201526024016103c4565b60ff83166007600583901c16146108f05760405161800560e51b81526007600583901c16600482015260ff841660248201526044016103c4565b6060816001600160401b03166001600160401b0381111561110f5761110f611e54565b6040519080825280601f01601f191660200182016040528015611139576020820181803683370190505b5090505f5b826001600160401b0316816001600160401b03161015611267575f6111628561191e565b905060808116156112295760e08160ff16101561119e576111828561191e565b603f16600682601f1660ff16901b179050600184039350611229565b60f08160ff1610156111e3576111b38561191e565b603f1660066111c18761191e565b603f1660ff16901b600c83600f1660ff16901b17179050600284039350611229565b6111ec8561191e565b603f1660066111fa8761191e565b603f16901b600c61120a8861191e565b603f1660ff16901b601284600f1660ff16901b17171790506003840393505b8060f81b83836001600160401b03168151811061124857611248612103565b60200101906001600160f81b03191690815f1a9053505060010161113e565b50908152919050565b5f60308260ff1610158015611289575060398260ff1611155b1561129957610c3560308361239d565b60418260ff16101580156112b1575060468260ff1611155b156112cc576112c160418361239d565b610c3590600a612371565b60618260ff16101580156112e4575060668260ff1611155b156112f4576112c160618361239d565b60405162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103432bc1031b430b930b1ba32b960591b60448201526064016103c4565b5f610c35826014611aa5565b60608160048060ff16826040015160ff161461138057604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b5f611392855f01518660600151610f80565b90506001600160401b03808216101561145657806001600160401b03166001600160401b038111156113c6576113c6611e54565b6040519080825280602002602001820160405280156113ef578160200160208202803683370190505b5093505f5b816001600160401b0316811015611450575f611412875f0151611b1a565b905061141d816109cd565b86838151811061142f5761142f612103565b6001600160401b0390921660209283029190910190910152506001016113f4565b5061147a565b604051636d785b1360e01b81526001600160401b03821660048201526024016103c4565b505050919050565b5f60f08260ff8111156114975761149761227c565b1480610c35575060f18260ff8111156114b2576114b261227c565b1492915050565b6114c1611ca2565b815180515160209091015110156114dd578151610c3590611b1a565b5090565b6114e9611ca2565b6040805160c0810180835284516101008301845260609091525f60e0830152825180840190935280518352602090810151908301529081908152602001836020015160ff168152602001836040015160ff168152602001836060015160ff16815260200183608001516001600160401b031681526020018360a001516001600160401b03168152509050919050565b60608160058060ff16826040015160ff16146115b857604080830151905161800560e51b815260ff918216600482015290821660248201526044016103c4565b5f6115ca855f01518660600151610f80565b6115d59060026123b6565b90506115e28160016122a4565b6001600160401b03166001600160401b0381111561160257611602611e54565b60405190808252806020026020018201604052801561163b57816020015b611628611ca2565b8152602001906001900390816116205790505b5093505f5b816001600160401b0316811015610e895761165a866114b9565b9550611665866114e1565b85828151811061167757611677612103565b602090810291909101015261168d6002826123d8565b1580156116a25750604086015160ff16600314155b156116d057604080870151905161800560e51b815260ff9091166004820152600360248201526044016103c4565b604086015160ff16600414806116ed5750604086015160ff166005145b1561174b5760408601515f9060ff166004146117115761170c87611578565b61171a565b61171a87610d0e565b9050806001825161172b919061238a565b8151811061173b5761173b612103565b6020026020010151965050611756565b6117548661175e565b505b600101611640565b611766611ca2565b604082015160ff1615806117815750604082015160ff166001145b806117ba5750604082015160ff1660071480156117a657506019826060015160ff1610155b80156117ba5750601b826060015160ff1611155b156117ec576117c882611c37565b6001600160401b0316825f01516020018181516117e591906123eb565b9052505090565b604082015160ff16600314806118095750604082015160ff166002145b1561184a575f611820835f01518460600151610f80565b9050806001600160401b0316835f015160200181815161184091906123eb565b9052506114dd9050565b604082015160ff16600414806118675750604082015160ff166005145b1561188f5761187d825f01518360600151610f80565b6001600160401b031660808301525090565b604082015160ff1660071415806118c15750816060015160ff166014141580156118c15750816060015160ff16601514155b156114dd5760405162461bcd60e51b815260206004820152602760248201527f5769746e657443424f522e736b69703a20756e737570706f72746564206d616a6044820152666f72207479706560c81b60648201526084016103c4565b5f8160200151825f01515180821115611954576040516363a056dd60e01b815260048101839052602481018290526044016103c4565b8351602085018051808301600101519550908190611971826123fe565b8152505050505050919050565b5f8160200151600261199091906123eb565b825151808211156119be576040516363a056dd60e01b815260048101839052602481018290526044016103c4565b83516020850180516002818401810151965090916119dc82846123eb565b9052509395945050505050565b5f816020015160046119fb91906123eb565b82515180821115611a29576040516363a056dd60e01b815260048101839052602481018290526044016103c4565b83516020850180516004818401810151965090916119dc82846123eb565b5f81602001516008611a5991906123eb565b82515180821115611a87576040516363a056dd60e01b815260048101839052602481018290526044016103c4565b83516020850180516008818401810151965090916119dc82846123eb565b5f60208260ff161115611aba57611aba612416565b5f8260ff16845111611acd578351611ad2565b8260ff165b90505f5b81811015611b125780600802858281518110611af457611af4612103565b01602001516001600160f81b031916901c9290921791600101611ad6565b505092915050565b611b22611ca2565b81515182905f03611b46576040516309036d4760e21b815260040160405180910390fd5b5f60ff816001600160401b038160015b8015611bc757611b658961191e565b955081611b71816123fe565b6007600589901c169650601f881695509250506005198501611bc0576020890151611b9c8a86610f80565b9350808a60200151611bae919061238a565b611bb890846123eb565b925050611b56565b505f611b56565b600760ff86161115611bf15760405163bd2ac87960e01b815260ff861660048201526024016103c4565b506040805160c08101825298895260ff95861660208a015293851693880193909352921660608601526001600160401b0390811660808601521660a08401525090919050565b5f6018826060015160ff161015611c4f57505f919050565b601c826060015160ff161015611c7e5760188260600151611c70919061239d565b60ff166001901b9050919050565b6060820151604051636d785b1360e01b815260ff90911660048201526024016103c4565b604080516101008101909152606060c082019081525f60e0830152819081525f6020820181905260408201819052606082018190526080820181905260a09091015290565b6001600160a01b0381168114611cfb575f5ffd5b50565b5f5f5f60608486031215611d10575f5ffd5b8335611d1b81611ce7565b92506020840135611d2b81611ce7565b929592945050506040919091013590565b5f5f5f60408486031215611d4e575f5ffd5b8335925060208401356001600160401b03811115611d6a575f5ffd5b8401601f81018613611d7a575f5ffd5b80356001600160401b03811115611d8f575f5ffd5b866020828401011115611da0575f5ffd5b939660209190910195509293505050565b5f5b83811015611dcb578181015183820152602001611db3565b50505f910152565b5f8151808452611dea816020860160208601611db1565b601f01601f19169290920160200192915050565b85815260a060208201525f611e1660a0830187611dd3565b8281036040840152611e288187611dd3565b6001600160a01b0395909516606084015250506001600160401b03919091166080909101529392505050565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715611e8a57611e8a611e54565b60405290565b604080519081016001600160401b0381118282101715611e8a57611e8a611e54565b60405160a081016001600160401b0381118282101715611e8a57611e8a611e54565b604051601f8201601f191681016001600160401b0381118282101715611efc57611efc611e54565b604052919050565b80356001600160401b0381168114610f7b575f5ffd5b803560ff81168114610f7b575f5ffd5b5f60c08284031215611f3a575f5ffd5b611f42611e68565b905081356001600160401b03811115611f59575f5ffd5b820160408185031215611f6a575f5ffd5b611f72611e90565b81356001600160401b03811115611f87575f5ffd5b8201601f81018613611f97575f5ffd5b80356001600160401b03811115611fb057611fb0611e54565b611fc3601f8201601f1916602001611ed4565b818152876020838501011115611fd7575f5ffd5b816020840160208301375f602092820183015283529283013582840152508252612002908301611f1a565b602082015261201360408301611f1a565b604082015261202460608301611f1a565b606082015261203560808301611f04565b608082015261204660a08301611f04565b60a082015292915050565b5f60208284031215612061575f5ffd5b81356001600160401b03811115612076575f5ffd5b820160a08185031215612087575f5ffd5b61208f611eb2565b8135610100811061209e575f5ffd5b81526020820135601481106120b1575f5ffd5b6020820152604082810135908201526120cc60608301611f04565b606082015260808201356001600160401b038111156120e9575f5ffd5b6120f586828501611f2a565b608083015250949350505050565b634e487b7160e01b5f52603260045260245ffd5b5f604082016040835280855180835260608501915060608160051b8601019250602087015f5b8281101561216e57605f19878603018452612159858351611dd3565b9450602093840193919091019060010161213d565b50505050828103602084015280845480835260208301915060208160051b840101865f5260205f205f5b8381101561225757858303601f1901855281545f90600181811c908216806121c157607f821691505b6020821081036121df57634e487b7160e01b5f52602260045260245ffd5b818752602087018180156121fa57600181146122105761223c565b60ff198516825283151560051b8201955061223c565b5f888152602090205f5b858110156122365781548482015260019091019060200161221a565b83019650505b50505060209790970196509093505060019182019101612198565b509098975050505050505050565b5f60208284031215612275575f5ffd5b5051919050565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b6001600160401b038181168382160190811115610c3557610c35612290565b634e487b7160e01b5f52601260045260245ffd5b5f60ff8316806122e9576122e96122c3565b8060ff84160491505092915050565b5f60ff821660ff810361230d5761230d612290565b60010192915050565b5f6001600160401b0383168061232e5761232e6122c3565b806001600160401b0384160491505092915050565b5f8351612354818460208801611db1565b835190830190612368818360208801611db1565b01949350505050565b60ff8181168382160190811115610c3557610c35612290565b81810381811115610c3557610c35612290565b60ff8281168282160390811115610c3557610c35612290565b6001600160401b0381811683821602908116908181146108f0576108f0612290565b5f826123e6576123e66122c3565b500690565b80820180821115610c3557610c35612290565b5f6001820161240f5761240f612290565b5060010190565b634e487b7160e01b5f52600160045260245ffdfe6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58ff6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58f9a2646970667358221220b43bbdcdf1e6990af6ef1861b380dbfd3141b2b1fbdf097d97179470f57636cd64736f6c634300081c0033", "linkReferences": {}, "deployedLinkReferences": {} }