UNPKG

@witnet/wrapped-wit

Version:

Wrapped/WIT Solidity contracts and CLI tools

161 lines (160 loc) 42.9 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": "0x6125d1610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80633752120b146100505780635d933eb71461008357806367c4440f146100b4575b600080fd5b81801561005c57600080fd5b5061007061006b366004611dd2565b6100df565b6040519081526020015b60405180910390f35b81801561008f57600080fd5b506100a361009e366004611e13565b61037c565b60405161007a959493929190611edf565b6100c76100c236600461213f565b610757565b6040516001600160401b03909116815260200161007a565b600081815260008051602061255c8339815191526020526040902054600019811461037557604080516001808252818301909252600091816020015b606081526020019060019003908161011b57905050905061013b8361087d565b8160008151811061014e5761014e6121f8565b60200260200101819052506000846001600160a01b031663f0e271bc8361018060008051602061257c83398151915290565b6004016040518363ffffffff1660e01b81526004016101a092919061220e565b6020604051808303816000875af11580156101bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e39190612364565b9050856001600160a01b0316633b3195b73483604051806060016040528061010061ffff16815260200161022260008051602061257c83398151915290565b6003015461ffff90811682527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58fc546001600160401b036401000000008204811660209485015260408051808201825230815262ffffff600160601b909404841681870190815282516001600160e01b031960e08d901b16815260048101999099528751861660248a015287870151909516604489015295810151909116606487015293516001600160a01b0316608486015290511660a4840152905160c480840193829003018185885af11580156102fe573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906103239190612364565b600085815260008051602061255c833981519152602090815260408083208490558383527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c59009091529020859055925050505b9392505050565b60008381527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c5900602052604081205490606090819080846103f65760405162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a59081c5d595c9e481a5960821b60448201526064015b60405180910390fd5b600085815260008051602061255c83398151915260205260409020546001016104615760405162461bcd60e51b815260206004820152601a60248201527f7769742f7772617020747820616c7265616479206d696e74656400000000000060448201526064016103ed565b600061046f8789018961213f565b90506000815160ff8111156104865761048661237d565b146104d35760405162461bcd60e51b815260206004820152601860248201527f717565727920736f6c7665642077697468206572726f7273000000000000000060448201526064016103ed565b6001816020015160138111156104eb576104eb61237d565b1461052f5760405162461bcd60e51b81526020600482015260146024820152731a5b9d985b1a59081c5d595c9e481c995cdd5b1d60621b60448201526064016103ed565b600086815260008051602061255c8339815191526020526040812060001990556105588261098f565b905061057d81600081518110610570576105706121f8565b6020026020010151610a65565b6001600160401b03166001146105d55760405162461bcd60e51b815260206004820152601860248201527f756e66696e616c697a656420717565727920726573756c74000000000000000060448201526064016103ed565b6105f8816002815181106105eb576105eb6121f8565b6020026020010151610ac1565b9550610610816003815181106105eb576105eb6121f8565b945061063861063361062e836001815181106105eb576105eb6121f8565b610bc7565b610cb5565b9350600061065282600481518110610570576105706121f8565b905061066a82600581518110610570576105706121f8565b935060008051602061257c8339815191526001018054600160801b90046001600160401b031690601061069c836123a9565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550506106f36106d960008051602061257c83398151915290565b546001600160401b0383811691600160c01b900416610cc9565b15610749578360008051602061257c83398151915260010180546000906107249084906001600160401b03166123d4565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b505050939792965093509350565b6000606081835160ff81111561076f5761076f61237d565b036107805761077d83610cdf565b90505b6000835160ff8111156107955761079561237d565b1480156107ce57506107ce60008051602061257c8339815191525460608501516001600160401b0390811691600160c01b900416610cc9565b80156107db575080516003145b6108185760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081c995c1bdc9d60921b60448201526064016103ed565b8060028151811061082b5761082b6121f8565b602002602001015181600181518110610846576108466121f8565b602002602001015182600081518110610861576108616121f8565b602002602001015161087391906123d4565b61037591906123d4565b6040805181815260608181018352916000919060208201818036833701905050905060005b81518160ff161015610988576108ea6004856108bf600285612409565b60ff16602081106108d2576108d26121f8565b1a60f81b6001600160f81b031916901c60f81c610d72565b82826108f58161242b565b935060ff168151811061090a5761090a6121f8565b60200101906001600160f81b031916908160001a90535061094c84610930600284612409565b60ff1660208110610943576109436121f8565b1a600f16610d72565b82826109578161242b565b935060ff168151811061096c5761096c6121f8565b60200101906001600160f81b031916908160001a9053506108a2565b5092915050565b606081600161099d82610da6565b1580156109cf57508060138111156109b7576109b761237d565b826020015160138111156109cd576109cd61237d565b145b610a155760405162461bcd60e51b815260206004820152601760248201527663626f723a2063616e6e6f74206665746368206461746160481b60448201526064016103ed565b610a228460800151610db5565b9250610a318260800151610f65565b82602001906013811115610a4757610a4761237d565b90816013811115610a5a57610a5a61237d565b815250505050919050565b60008160008060ff16826040015160ff1614610aa557604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b610ab78460000151856060015161102d565b92505b5050919050565b60608160038060ff16826040015160ff1614610b0157604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b610b138460000151856060015161102d565b6001600160401b03166080850181905267fffffffffffffffe1901610bb05760005b80610baa576000610b4e866000015187604001516110f5565b90506001600160401b038082161015610b9f5784610b78610b70600484612441565b88519061119b565b604051602001610b8992919061246f565b6040516020818303038152906040529450610ba4565b600191505b50610b35565b50610aba565b60808401518451610bc09161119b565b9250610aba565b60606002825181610bda57610bda6123f3565b046001600160401b03811115610bf257610bf2611f36565b6040519080825280601f01601f191660200182016040528015610c1c576020820181803683370190505b50905060005b8151811015610caf576000610c52848360020281518110610c4557610c456121f8565b016020015160f81c611322565b90506000610c71858460020260010181518110610c4557610c456121f8565b905080826010020160f81b848481518110610c8e57610c8e6121f8565b60200101906001600160f81b031916908160001a9053505050600101610c22565b50919050565b6000610cc0826113e7565b60601c92915050565b6001600160401b03808216908316115b92915050565b6060816001610ced82610da6565b158015610d1f5750806013811115610d0757610d0761237d565b82602001516013811115610d1d57610d1d61237d565b145b610d655760405162461bcd60e51b815260206004820152601760248201527663626f723a2063616e6e6f74206665746368206461746160481b60448201526064016103ed565b610a2284608001516113f4565b6000600a8260ff1610610d9257610d8a82605761249e565b60f81b610cd9565b610d9d82603061249e565b60f81b92915050565b6000610cd9826000015161153b565b60608160048060ff16826040015160ff1614610df557604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b6000610e098560000151866060015161102d565b9050610e168160016123d4565b6001600160401b03166001600160401b03811115610e3657610e36611f36565b604051908082528060200260200182016040528015610e6f57816020015b610e5c611d73565b815260200190600190039081610e545790505b50935060005b816001600160401b0316811015610f3557610e8f86611573565b9550610e9a8661159b565b858281518110610eac57610eac6121f8565b6020026020010181905250600460ff16866040015160ff1603610f05576000610ed487610db5565b90508060018251610ee591906124b7565b81518110610ef557610ef56121f8565b6020026020010151965050610f2d565b600560ff16866040015160ff1603610f22576000610ed487611633565b610f2b8661181d565b505b600101610e75565b508484826001600160401b031681518110610f5257610f526121f8565b6020026020010181905250505050919050565b6000610f7a8251805151602090910151101590565b611028576006826040015160ff1611610fc25760408201516502020183808360d11b9060ff1660078110610fb057610fb06121f8565b1a6013811115610cd957610cd961237d565b816040015160ff1660070361102857816060015160ff1660141480610fee5750816060015160ff166015145b15610ffb57506002919050565b6019826060015160ff161015801561101b5750601b826060015160ff1611155b1561102857506005919050565b919050565b600060188260ff161015611045575060ff8116610cd9565b8160ff1660180361106357611059836119e2565b60ff169050610cd9565b8160ff166019036110825761107783611a44565b61ffff169050610cd9565b8160ff16601a036110a35761109683611ab0565b63ffffffff169050610cd9565b8160ff16601b036110be576110b783611b0f565b9050610cd9565b8160ff16601f036110d757506001600160401b03610cd9565b604051636d785b1360e01b815260ff831660048201526024016103ed565b600080611101846119e2565b90508060ff1660ff0361111e576001600160401b03915050610cd9565b61112b8482601f1661102d565b91506001600160401b038083161061116157604051636d785b1360e01b81526001600160401b03831660048201526024016103ed565b60ff83166007600583901c16146109885760405161800560e51b81526007600583901c16600482015260ff841660248201526044016103ed565b6060816001600160401b03166001600160401b038111156111be576111be611f36565b6040519080825280601f01601f1916602001820160405280156111e8576020820181803683370190505b50905060005b826001600160401b0316816001600160401b03161015611319576000611213856119e2565b905060808116156112da5760e08160ff16101561124f57611233856119e2565b603f16600682601f1660ff16901b1790506001840393506112da565b60f08160ff16101561129457611264856119e2565b603f166006611272876119e2565b603f1660ff16901b600c83600f1660ff16901b171790506002840393506112da565b61129d856119e2565b603f1660066112ab876119e2565b603f16901b600c6112bb886119e2565b603f1660ff16901b601284600f1660ff16901b17171790506003840393505b8060f81b83836001600160401b0316815181106112f9576112f96121f8565b60200101906001600160f81b031916908160001a905350506001016111ee565b50908152919050565b600060308260ff161015801561133c575060398260ff1611155b1561134c57610cd96030836124ca565b60418260ff1610158015611364575060468260ff1611155b1561137f576113746041836124ca565b610cd990600a61249e565b60618260ff1610158015611397575060668260ff1611155b156113a7576113746061836124ca565b60405162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103432bc1031b430b930b1ba32b960591b60448201526064016103ed565b6000610cd9826014611b6e565b60608160048060ff16826040015160ff161461143457604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b60006114488560000151866060015161102d565b90506001600160401b03808216101561150f57806001600160401b03166001600160401b0381111561147c5761147c611f36565b6040519080825280602002602001820160405280156114a5578160200160208202803683370190505b50935060005b816001600160401b03168110156115095760006114cb8760000151611be6565b90506114d681610a65565b8683815181106114e8576114e86121f8565b6001600160401b0390921660209283029190910190910152506001016114ab565b50611533565b604051636d785b1360e01b81526001600160401b03821660048201526024016103ed565b505050919050565b600060f08260ff8111156115515761155161237d565b1480610cd9575060f18260ff81111561156c5761156c61237d565b1492915050565b61157b611d73565b81518051516020909101511015611597578151610cd990611be6565b5090565b6115a3611d73565b6040805160c081018083528451610100830184526060909152600060e0830152825180840190935280518352602090810151908301529081908152602001836020015160ff168152602001836040015160ff168152602001836060015160ff16815260200183608001516001600160401b031681526020018360a001516001600160401b03168152509050919050565b60608160058060ff16826040015160ff161461167357604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b60006116878560000151866060015161102d565b6116929060026124e3565b905061169f8160016123d4565b6001600160401b03166001600160401b038111156116bf576116bf611f36565b6040519080825280602002602001820160405280156116f857816020015b6116e5611d73565b8152602001906001900390816116dd5790505b50935060005b816001600160401b0316811015610f355761171886611573565b95506117238661159b565b858281518110611735576117356121f8565b602090810291909101015261174b600282612505565b1580156117605750604086015160ff16600314155b1561178e57604080870151905161800560e51b815260ff9091166004820152600360248201526044016103ed565b604086015160ff16600414806117ab5750604086015160ff166005145b1561180a57604086015160009060ff166004146117d0576117cb87611633565b6117d9565b6117d987610db5565b905080600182516117ea91906124b7565b815181106117fa576117fa6121f8565b6020026020010151965050611815565b6118138661181d565b505b6001016116fe565b611825611d73565b604082015160ff1615806118405750604082015160ff166001145b806118795750604082015160ff16600714801561186557506019826060015160ff1610155b80156118795750601b826060015160ff1611155b156118ac5761188782611d06565b6001600160401b031682600001516020018181516118a59190612519565b9052505090565b604082015160ff16600314806118c95750604082015160ff166002145b1561190d5760006118e28360000151846060015161102d565b9050806001600160401b031683600001516020018181516119039190612519565b9052506115979050565b604082015160ff166004148061192a5750604082015160ff166005145b15611953576119418260000151836060015161102d565b6001600160401b031660808301525090565b604082015160ff1660071415806119855750816060015160ff166014141580156119855750816060015160ff16601514155b156115975760405162461bcd60e51b815260206004820152602760248201527f5769746e657443424f522e736b69703a20756e737570706f72746564206d616a6044820152666f72207479706560c81b60648201526084016103ed565b6000816020015182600001515180821115611a1a576040516363a056dd60e01b815260048101839052602481018290526044016103ed565b8351602085018051808301600101519550908190611a378261252c565b8152505050505050919050565b600081602001516002611a579190612519565b82515180821115611a85576040516363a056dd60e01b815260048101839052602481018290526044016103ed565b8351602085018051600281840181015196509091611aa38284612519565b9052509395945050505050565b600081602001516004611ac39190612519565b82515180821115611af1576040516363a056dd60e01b815260048101839052602481018290526044016103ed565b8351602085018051600481840181015196509091611aa38284612519565b600081602001516008611b229190612519565b82515180821115611b50576040516363a056dd60e01b815260048101839052602481018290526044016103ed565b8351602085018051600881840181015196509091611aa38284612519565b600060208260ff161115611b8457611b84612545565b60008260ff16845111611b98578351611b9d565b8260ff165b905060005b81811015611bde5780600802858281518110611bc057611bc06121f8565b01602001516001600160f81b031916901c9290921791600101611ba2565b505092915050565b611bee611d73565b8151518290600003611c13576040516309036d4760e21b815260040160405180910390fd5b600060ff816001600160401b038160015b8015611c9657611c33896119e2565b955081611c3f8161252c565b6007600589901c169650601f881695509250506005198501611c8e576020890151611c6a8a8661102d565b9350808a60200151611c7c91906124b7565b611c869084612519565b925050611c24565b506000611c24565b600760ff86161115611cc05760405163bd2ac87960e01b815260ff861660048201526024016103ed565b506040805160c08101825298895260ff95861660208a015293851693880193909352921660608601526001600160401b0390811660808601521660a08401525090919050565b60006018826060015160ff161015611d2057506000919050565b601c826060015160ff161015611d4f5760188260600151611d4191906124ca565b60ff166001901b9050919050565b6060820151604051636d785b1360e01b815260ff90911660048201526024016103ed565b604080516101008101909152606060c08201908152600060e08301528190815260006020820181905260408201819052606082018190526080820181905260a09091015290565b6001600160a01b0381168114611dcf57600080fd5b50565b600080600060608486031215611de757600080fd5b8335611df281611dba565b92506020840135611e0281611dba565b929592945050506040919091013590565b600080600060408486031215611e2857600080fd5b8335925060208401356001600160401b03811115611e4557600080fd5b8401601f81018613611e5657600080fd5b80356001600160401b03811115611e6c57600080fd5b866020828401011115611e7e57600080fd5b939660209190910195509293505050565b60005b83811015611eaa578181015183820152602001611e92565b50506000910152565b60008151808452611ecb816020860160208601611e8f565b601f01601f19169290920160200192915050565b85815260a060208201526000611ef860a0830187611eb3565b8281036040840152611f0a8187611eb3565b6001600160a01b0395909516606084015250506001600160401b03919091166080909101529392505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611f6e57611f6e611f36565b60405290565b604080519081016001600160401b0381118282101715611f6e57611f6e611f36565b60405160a081016001600160401b0381118282101715611f6e57611f6e611f36565b604051601f8201601f191681016001600160401b0381118282101715611fe057611fe0611f36565b604052919050565b80356001600160401b038116811461102857600080fd5b803560ff8116811461102857600080fd5b600060c0828403121561202257600080fd5b61202a611f4c565b905081356001600160401b0381111561204257600080fd5b82016040818503121561205457600080fd5b61205c611f74565b81356001600160401b0381111561207257600080fd5b8201601f8101861361208357600080fd5b80356001600160401b0381111561209c5761209c611f36565b6120af601f8201601f1916602001611fb8565b8181528760208385010111156120c457600080fd5b8160208401602083013760006020928201830152835292830135828401525082526120f0908301611fff565b602082015261210160408301611fff565b604082015261211260608301611fff565b606082015261212360808301611fe8565b608082015261213460a08301611fe8565b60a082015292915050565b60006020828403121561215157600080fd5b81356001600160401b0381111561216757600080fd5b820160a0818503121561217957600080fd5b612181611f96565b8135610100811061219157600080fd5b81526020820135601481106121a557600080fd5b6020820152604082810135908201526121c060608301611fe8565b606082015260808201356001600160401b038111156121de57600080fd5b6121ea86828501612010565b608083015250949350505050565b634e487b7160e01b600052603260045260246000fd5b6000604082016040835280855180835260608501915060608160051b86010192506020870160005b8281101561226757605f19878603018452612252858351611eb3565b94506020938401939190910190600101612236565b50505050828103602084015280845480835260208301915060208160051b84010186600052602060002060005b8381101561235657858303601f190185528154600090600181811c908216806122be57607f821691505b6020821081036122dc57634e487b7160e01b84526022600452602484fd5b818752602087018180156122f7576001811461230d5761233b565b60ff198516825283151560051b8201955061233b565b60008881526020902060005b8581101561233557815484820152600190910190602001612319565b83019650505b50505060209790970196509093505060019182019101612294565b509098975050505050505050565b60006020828403121561237657600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b0382166001600160401b0381036123cb576123cb612393565b60010192915050565b6001600160401b038181168382160190811115610cd957610cd9612393565b634e487b7160e01b600052601260045260246000fd5b600060ff83168061241c5761241c6123f3565b8060ff84160491505092915050565b600060ff821660ff81036123cb576123cb612393565b60006001600160401b0383168061245a5761245a6123f3565b806001600160401b0384160491505092915050565b60008351612481818460208801611e8f565b835190830190612495818360208801611e8f565b01949350505050565b60ff8181168382160190811115610cd957610cd9612393565b81810381811115610cd957610cd9612393565b60ff8281168282160390811115610cd957610cd9612393565b6001600160401b03818116838216029081169081811461098857610988612393565b600082612514576125146123f3565b500690565b80820180821115610cd957610cd9612393565b60006001820161253e5761253e612393565b5060010190565b634e487b7160e01b600052600160045260246000fdfe6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58ff6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58f9a264697066735822122004df0e6774b6ee639155dac5be438aebd5868e3ab77761428d3aefa6c59a6be964736f6c634300081c0033", "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c80633752120b146100505780635d933eb71461008357806367c4440f146100b4575b600080fd5b81801561005c57600080fd5b5061007061006b366004611dd2565b6100df565b6040519081526020015b60405180910390f35b81801561008f57600080fd5b506100a361009e366004611e13565b61037c565b60405161007a959493929190611edf565b6100c76100c236600461213f565b610757565b6040516001600160401b03909116815260200161007a565b600081815260008051602061255c8339815191526020526040902054600019811461037557604080516001808252818301909252600091816020015b606081526020019060019003908161011b57905050905061013b8361087d565b8160008151811061014e5761014e6121f8565b60200260200101819052506000846001600160a01b031663f0e271bc8361018060008051602061257c83398151915290565b6004016040518363ffffffff1660e01b81526004016101a092919061220e565b6020604051808303816000875af11580156101bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101e39190612364565b9050856001600160a01b0316633b3195b73483604051806060016040528061010061ffff16815260200161022260008051602061257c83398151915290565b6003015461ffff90811682527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58fc546001600160401b036401000000008204811660209485015260408051808201825230815262ffffff600160601b909404841681870190815282516001600160e01b031960e08d901b16815260048101999099528751861660248a015287870151909516604489015295810151909116606487015293516001600160a01b0316608486015290511660a4840152905160c480840193829003018185885af11580156102fe573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906103239190612364565b600085815260008051602061255c833981519152602090815260408083208490558383527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c59009091529020859055925050505b9392505050565b60008381527f6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c5900602052604081205490606090819080846103f65760405162461bcd60e51b815260206004820152601060248201526f1a5b9d985b1a59081c5d595c9e481a5960821b60448201526064015b60405180910390fd5b600085815260008051602061255c83398151915260205260409020546001016104615760405162461bcd60e51b815260206004820152601a60248201527f7769742f7772617020747820616c7265616479206d696e74656400000000000060448201526064016103ed565b600061046f8789018961213f565b90506000815160ff8111156104865761048661237d565b146104d35760405162461bcd60e51b815260206004820152601860248201527f717565727920736f6c7665642077697468206572726f7273000000000000000060448201526064016103ed565b6001816020015160138111156104eb576104eb61237d565b1461052f5760405162461bcd60e51b81526020600482015260146024820152731a5b9d985b1a59081c5d595c9e481c995cdd5b1d60621b60448201526064016103ed565b600086815260008051602061255c8339815191526020526040812060001990556105588261098f565b905061057d81600081518110610570576105706121f8565b6020026020010151610a65565b6001600160401b03166001146105d55760405162461bcd60e51b815260206004820152601860248201527f756e66696e616c697a656420717565727920726573756c74000000000000000060448201526064016103ed565b6105f8816002815181106105eb576105eb6121f8565b6020026020010151610ac1565b9550610610816003815181106105eb576105eb6121f8565b945061063861063361062e836001815181106105eb576105eb6121f8565b610bc7565b610cb5565b9350600061065282600481518110610570576105706121f8565b905061066a82600581518110610570576105706121f8565b935060008051602061257c8339815191526001018054600160801b90046001600160401b031690601061069c836123a9565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550506106f36106d960008051602061257c83398151915290565b546001600160401b0383811691600160c01b900416610cc9565b15610749578360008051602061257c83398151915260010180546000906107249084906001600160401b03166123d4565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b505050939792965093509350565b6000606081835160ff81111561076f5761076f61237d565b036107805761077d83610cdf565b90505b6000835160ff8111156107955761079561237d565b1480156107ce57506107ce60008051602061257c8339815191525460608501516001600160401b0390811691600160c01b900416610cc9565b80156107db575080516003145b6108185760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081c995c1bdc9d60921b60448201526064016103ed565b8060028151811061082b5761082b6121f8565b602002602001015181600181518110610846576108466121f8565b602002602001015182600081518110610861576108616121f8565b602002602001015161087391906123d4565b61037591906123d4565b6040805181815260608181018352916000919060208201818036833701905050905060005b81518160ff161015610988576108ea6004856108bf600285612409565b60ff16602081106108d2576108d26121f8565b1a60f81b6001600160f81b031916901c60f81c610d72565b82826108f58161242b565b935060ff168151811061090a5761090a6121f8565b60200101906001600160f81b031916908160001a90535061094c84610930600284612409565b60ff1660208110610943576109436121f8565b1a600f16610d72565b82826109578161242b565b935060ff168151811061096c5761096c6121f8565b60200101906001600160f81b031916908160001a9053506108a2565b5092915050565b606081600161099d82610da6565b1580156109cf57508060138111156109b7576109b761237d565b826020015160138111156109cd576109cd61237d565b145b610a155760405162461bcd60e51b815260206004820152601760248201527663626f723a2063616e6e6f74206665746368206461746160481b60448201526064016103ed565b610a228460800151610db5565b9250610a318260800151610f65565b82602001906013811115610a4757610a4761237d565b90816013811115610a5a57610a5a61237d565b815250505050919050565b60008160008060ff16826040015160ff1614610aa557604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b610ab78460000151856060015161102d565b92505b5050919050565b60608160038060ff16826040015160ff1614610b0157604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b610b138460000151856060015161102d565b6001600160401b03166080850181905267fffffffffffffffe1901610bb05760005b80610baa576000610b4e866000015187604001516110f5565b90506001600160401b038082161015610b9f5784610b78610b70600484612441565b88519061119b565b604051602001610b8992919061246f565b6040516020818303038152906040529450610ba4565b600191505b50610b35565b50610aba565b60808401518451610bc09161119b565b9250610aba565b60606002825181610bda57610bda6123f3565b046001600160401b03811115610bf257610bf2611f36565b6040519080825280601f01601f191660200182016040528015610c1c576020820181803683370190505b50905060005b8151811015610caf576000610c52848360020281518110610c4557610c456121f8565b016020015160f81c611322565b90506000610c71858460020260010181518110610c4557610c456121f8565b905080826010020160f81b848481518110610c8e57610c8e6121f8565b60200101906001600160f81b031916908160001a9053505050600101610c22565b50919050565b6000610cc0826113e7565b60601c92915050565b6001600160401b03808216908316115b92915050565b6060816001610ced82610da6565b158015610d1f5750806013811115610d0757610d0761237d565b82602001516013811115610d1d57610d1d61237d565b145b610d655760405162461bcd60e51b815260206004820152601760248201527663626f723a2063616e6e6f74206665746368206461746160481b60448201526064016103ed565b610a2284608001516113f4565b6000600a8260ff1610610d9257610d8a82605761249e565b60f81b610cd9565b610d9d82603061249e565b60f81b92915050565b6000610cd9826000015161153b565b60608160048060ff16826040015160ff1614610df557604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b6000610e098560000151866060015161102d565b9050610e168160016123d4565b6001600160401b03166001600160401b03811115610e3657610e36611f36565b604051908082528060200260200182016040528015610e6f57816020015b610e5c611d73565b815260200190600190039081610e545790505b50935060005b816001600160401b0316811015610f3557610e8f86611573565b9550610e9a8661159b565b858281518110610eac57610eac6121f8565b6020026020010181905250600460ff16866040015160ff1603610f05576000610ed487610db5565b90508060018251610ee591906124b7565b81518110610ef557610ef56121f8565b6020026020010151965050610f2d565b600560ff16866040015160ff1603610f22576000610ed487611633565b610f2b8661181d565b505b600101610e75565b508484826001600160401b031681518110610f5257610f526121f8565b6020026020010181905250505050919050565b6000610f7a8251805151602090910151101590565b611028576006826040015160ff1611610fc25760408201516502020183808360d11b9060ff1660078110610fb057610fb06121f8565b1a6013811115610cd957610cd961237d565b816040015160ff1660070361102857816060015160ff1660141480610fee5750816060015160ff166015145b15610ffb57506002919050565b6019826060015160ff161015801561101b5750601b826060015160ff1611155b1561102857506005919050565b919050565b600060188260ff161015611045575060ff8116610cd9565b8160ff1660180361106357611059836119e2565b60ff169050610cd9565b8160ff166019036110825761107783611a44565b61ffff169050610cd9565b8160ff16601a036110a35761109683611ab0565b63ffffffff169050610cd9565b8160ff16601b036110be576110b783611b0f565b9050610cd9565b8160ff16601f036110d757506001600160401b03610cd9565b604051636d785b1360e01b815260ff831660048201526024016103ed565b600080611101846119e2565b90508060ff1660ff0361111e576001600160401b03915050610cd9565b61112b8482601f1661102d565b91506001600160401b038083161061116157604051636d785b1360e01b81526001600160401b03831660048201526024016103ed565b60ff83166007600583901c16146109885760405161800560e51b81526007600583901c16600482015260ff841660248201526044016103ed565b6060816001600160401b03166001600160401b038111156111be576111be611f36565b6040519080825280601f01601f1916602001820160405280156111e8576020820181803683370190505b50905060005b826001600160401b0316816001600160401b03161015611319576000611213856119e2565b905060808116156112da5760e08160ff16101561124f57611233856119e2565b603f16600682601f1660ff16901b1790506001840393506112da565b60f08160ff16101561129457611264856119e2565b603f166006611272876119e2565b603f1660ff16901b600c83600f1660ff16901b171790506002840393506112da565b61129d856119e2565b603f1660066112ab876119e2565b603f16901b600c6112bb886119e2565b603f1660ff16901b601284600f1660ff16901b17171790506003840393505b8060f81b83836001600160401b0316815181106112f9576112f96121f8565b60200101906001600160f81b031916908160001a905350506001016111ee565b50908152919050565b600060308260ff161015801561133c575060398260ff1611155b1561134c57610cd96030836124ca565b60418260ff1610158015611364575060468260ff1611155b1561137f576113746041836124ca565b610cd990600a61249e565b60618260ff1610158015611397575060668260ff1611155b156113a7576113746061836124ca565b60405162461bcd60e51b815260206004820152601560248201527424b73b30b634b2103432bc1031b430b930b1ba32b960591b60448201526064016103ed565b6000610cd9826014611b6e565b60608160048060ff16826040015160ff161461143457604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b60006114488560000151866060015161102d565b90506001600160401b03808216101561150f57806001600160401b03166001600160401b0381111561147c5761147c611f36565b6040519080825280602002602001820160405280156114a5578160200160208202803683370190505b50935060005b816001600160401b03168110156115095760006114cb8760000151611be6565b90506114d681610a65565b8683815181106114e8576114e86121f8565b6001600160401b0390921660209283029190910190910152506001016114ab565b50611533565b604051636d785b1360e01b81526001600160401b03821660048201526024016103ed565b505050919050565b600060f08260ff8111156115515761155161237d565b1480610cd9575060f18260ff81111561156c5761156c61237d565b1492915050565b61157b611d73565b81518051516020909101511015611597578151610cd990611be6565b5090565b6115a3611d73565b6040805160c081018083528451610100830184526060909152600060e0830152825180840190935280518352602090810151908301529081908152602001836020015160ff168152602001836040015160ff168152602001836060015160ff16815260200183608001516001600160401b031681526020018360a001516001600160401b03168152509050919050565b60608160058060ff16826040015160ff161461167357604080830151905161800560e51b815260ff918216600482015290821660248201526044016103ed565b60006116878560000151866060015161102d565b6116929060026124e3565b905061169f8160016123d4565b6001600160401b03166001600160401b038111156116bf576116bf611f36565b6040519080825280602002602001820160405280156116f857816020015b6116e5611d73565b8152602001906001900390816116dd5790505b50935060005b816001600160401b0316811015610f355761171886611573565b95506117238661159b565b858281518110611735576117356121f8565b602090810291909101015261174b600282612505565b1580156117605750604086015160ff16600314155b1561178e57604080870151905161800560e51b815260ff9091166004820152600360248201526044016103ed565b604086015160ff16600414806117ab5750604086015160ff166005145b1561180a57604086015160009060ff166004146117d0576117cb87611633565b6117d9565b6117d987610db5565b905080600182516117ea91906124b7565b815181106117fa576117fa6121f8565b6020026020010151965050611815565b6118138661181d565b505b6001016116fe565b611825611d73565b604082015160ff1615806118405750604082015160ff166001145b806118795750604082015160ff16600714801561186557506019826060015160ff1610155b80156118795750601b826060015160ff1611155b156118ac5761188782611d06565b6001600160401b031682600001516020018181516118a59190612519565b9052505090565b604082015160ff16600314806118c95750604082015160ff166002145b1561190d5760006118e28360000151846060015161102d565b9050806001600160401b031683600001516020018181516119039190612519565b9052506115979050565b604082015160ff166004148061192a5750604082015160ff166005145b15611953576119418260000151836060015161102d565b6001600160401b031660808301525090565b604082015160ff1660071415806119855750816060015160ff166014141580156119855750816060015160ff16601514155b156115975760405162461bcd60e51b815260206004820152602760248201527f5769746e657443424f522e736b69703a20756e737570706f72746564206d616a6044820152666f72207479706560c81b60648201526084016103ed565b6000816020015182600001515180821115611a1a576040516363a056dd60e01b815260048101839052602481018290526044016103ed565b8351602085018051808301600101519550908190611a378261252c565b8152505050505050919050565b600081602001516002611a579190612519565b82515180821115611a85576040516363a056dd60e01b815260048101839052602481018290526044016103ed565b8351602085018051600281840181015196509091611aa38284612519565b9052509395945050505050565b600081602001516004611ac39190612519565b82515180821115611af1576040516363a056dd60e01b815260048101839052602481018290526044016103ed565b8351602085018051600481840181015196509091611aa38284612519565b600081602001516008611b229190612519565b82515180821115611b50576040516363a056dd60e01b815260048101839052602481018290526044016103ed565b8351602085018051600881840181015196509091611aa38284612519565b600060208260ff161115611b8457611b84612545565b60008260ff16845111611b98578351611b9d565b8260ff165b905060005b81811015611bde5780600802858281518110611bc057611bc06121f8565b01602001516001600160f81b031916901c9290921791600101611ba2565b505092915050565b611bee611d73565b8151518290600003611c13576040516309036d4760e21b815260040160405180910390fd5b600060ff816001600160401b038160015b8015611c9657611c33896119e2565b955081611c3f8161252c565b6007600589901c169650601f881695509250506005198501611c8e576020890151611c6a8a8661102d565b9350808a60200151611c7c91906124b7565b611c869084612519565b925050611c24565b506000611c24565b600760ff86161115611cc05760405163bd2ac87960e01b815260ff861660048201526024016103ed565b506040805160c08101825298895260ff95861660208a015293851693880193909352921660608601526001600160401b0390811660808601521660a08401525090919050565b60006018826060015160ff161015611d2057506000919050565b601c826060015160ff161015611d4f5760188260600151611d4191906124ca565b60ff166001901b9050919050565b6060820151604051636d785b1360e01b815260ff90911660048201526024016103ed565b604080516101008101909152606060c08201908152600060e08301528190815260006020820181905260408201819052606082018190526080820181905260a09091015290565b6001600160a01b0381168114611dcf57600080fd5b50565b600080600060608486031215611de757600080fd5b8335611df281611dba565b92506020840135611e0281611dba565b929592945050506040919091013590565b600080600060408486031215611e2857600080fd5b8335925060208401356001600160401b03811115611e4557600080fd5b8401601f81018613611e5657600080fd5b80356001600160401b03811115611e6c57600080fd5b866020828401011115611e7e57600080fd5b939660209190910195509293505050565b60005b83811015611eaa578181015183820152602001611e92565b50506000910152565b60008151808452611ecb816020860160208601611e8f565b601f01601f19169290920160200192915050565b85815260a060208201526000611ef860a0830187611eb3565b8281036040840152611f0a8187611eb3565b6001600160a01b0395909516606084015250506001600160401b03919091166080909101529392505050565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b0381118282101715611f6e57611f6e611f36565b60405290565b604080519081016001600160401b0381118282101715611f6e57611f6e611f36565b60405160a081016001600160401b0381118282101715611f6e57611f6e611f36565b604051601f8201601f191681016001600160401b0381118282101715611fe057611fe0611f36565b604052919050565b80356001600160401b038116811461102857600080fd5b803560ff8116811461102857600080fd5b600060c0828403121561202257600080fd5b61202a611f4c565b905081356001600160401b0381111561204257600080fd5b82016040818503121561205457600080fd5b61205c611f74565b81356001600160401b0381111561207257600080fd5b8201601f8101861361208357600080fd5b80356001600160401b0381111561209c5761209c611f36565b6120af601f8201601f1916602001611fb8565b8181528760208385010111156120c457600080fd5b8160208401602083013760006020928201830152835292830135828401525082526120f0908301611fff565b602082015261210160408301611fff565b604082015261211260608301611fff565b606082015261212360808301611fe8565b608082015261213460a08301611fe8565b60a082015292915050565b60006020828403121561215157600080fd5b81356001600160401b0381111561216757600080fd5b820160a0818503121561217957600080fd5b612181611f96565b8135610100811061219157600080fd5b81526020820135601481106121a557600080fd5b6020820152604082810135908201526121c060608301611fe8565b606082015260808201356001600160401b038111156121de57600080fd5b6121ea86828501612010565b608083015250949350505050565b634e487b7160e01b600052603260045260246000fd5b6000604082016040835280855180835260608501915060608160051b86010192506020870160005b8281101561226757605f19878603018452612252858351611eb3565b94506020938401939190910190600101612236565b50505050828103602084015280845480835260208301915060208160051b84010186600052602060002060005b8381101561235657858303601f190185528154600090600181811c908216806122be57607f821691505b6020821081036122dc57634e487b7160e01b84526022600452602484fd5b818752602087018180156122f7576001811461230d5761233b565b60ff198516825283151560051b8201955061233b565b60008881526020902060005b8581101561233557815484820152600190910190602001612319565b83019650505b50505060209790970196509093505060019182019101612294565b509098975050505050505050565b60006020828403121561237657600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160401b0382166001600160401b0381036123cb576123cb612393565b60010192915050565b6001600160401b038181168382160190811115610cd957610cd9612393565b634e487b7160e01b600052601260045260246000fd5b600060ff83168061241c5761241c6123f3565b8060ff84160491505092915050565b600060ff821660ff81036123cb576123cb612393565b60006001600160401b0383168061245a5761245a6123f3565b806001600160401b0384160491505092915050565b60008351612481818460208801611e8f565b835190830190612495818360208801611e8f565b01949350505050565b60ff8181168382160190811115610cd957610cd9612393565b81810381811115610cd957610cd9612393565b60ff8281168282160390811115610cd957610cd9612393565b6001600160401b03818116838216029081169081811461098857610988612393565b600082612514576125146123f3565b500690565b80820180821115610cd957610cd9612393565b60006001820161253e5761253e612393565b5060010190565b634e487b7160e01b600052600160045260246000fdfe6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58ff6116473658e87b023e7f215d122c0048f3d7a669d8df94a5565f0c95871c58f9a264697066735822122004df0e6774b6ee639155dac5be438aebd5868e3ab77761428d3aefa6c59a6be964736f6c634300081c0033", "linkReferences": {}, "deployedLinkReferences": {} }