{ "_format": "hh-sol-artifact-1", "contractName": "OracleWithCCIP", "sourceName": "contracts/oracle/OracleWithCCIP.sol", "abi": [ { "inputs": [ { "internalType": "string", "name": "_description", "type": "string" }, { "internalType": "address", "name": "_admin", "type": "address" }, { "internalType": "uint256", "name": "_heartbeat", "type": "uint256" }, { "internalType": "uint256", "name": "_deviationThreshold", "type": "uint256" }, { "internalType": "address", "name": "_ccipSender", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "oldAdmin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "int256", "name": "current", "type": "int256" }, { "indexed": true, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "updatedAt", "type": "uint256" } ], "name": "AnswerUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "CCIPEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldSender", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newSender", "type": "address" } ], "name": "CCIPSenderUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "messageId", "type": "bytes32" }, { "indexed": true, "internalType": "uint64", "name": "destinationChainSelector", "type": "uint64" }, { "indexed": false, "internalType": "uint256", "name": "answer", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "roundId", "type": "uint256" } ], "name": "CCIPUpdateSent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldThreshold", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newThreshold", "type": "uint256" } ], "name": "DeviationThresholdUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "oldHeartbeat", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newHeartbeat", "type": "uint256" } ], "name": "HeartbeatUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "roundId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "startedBy", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "startedAt", "type": "uint256" } ], "name": "NewRound", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "transmitter", "type": "address" } ], "name": "TransmitterAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "transmitter", "type": "address" } ], "name": "TransmitterRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "transmitter", "type": "address" } ], "name": "addTransmitter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "admin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "ccipDestinationChains", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ccipEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ccipSender", "outputs": [ { "internalType": "contract CCIPSender", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "changeAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "description", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deviationThreshold", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCCIPDestinations", "outputs": [ { "internalType": "uint64[]", "name": "", "type": "uint64[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "chainSelector", "type": "uint64" } ], "name": "getCCIPFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint80", "name": "_roundId", "type": "uint80" } ], "name": "getRoundData", "outputs": [ { "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTransmitters", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "heartbeat", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isTransmitter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestAnswer", "outputs": [ { "internalType": "int256", "name": "", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRound", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "latestRoundData", "outputs": [ { "internalType": "uint80", "name": "roundId", "type": "uint80" }, { "internalType": "int256", "name": "answer", "type": "int256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint80", "name": "answeredInRound", "type": "uint80" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "transmitter", "type": "address" } ], "name": "removeTransmitter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "rounds", "outputs": [ { "internalType": "uint256", "name": "answer", "type": "uint256" }, { "internalType": "uint256", "name": "startedAt", "type": "uint256" }, { "internalType": "uint256", "name": "updatedAt", "type": "uint256" }, { "internalType": "uint256", "name": "answeredInRound", "type": "uint256" }, { "internalType": "address", "name": "transmitter", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "enabled", "type": "bool" } ], "name": "setCCIPEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transmitters", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "answer", "type": "uint256" } ], "name": "updateAnswer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newSender", "type": "address" } ], "name": "updateCCIPSender", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newThreshold", "type": "uint256" } ], "name": "updateDeviationThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newHeartbeat", "type": "uint256" } ], "name": "updateHeartbeat", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234620002e5576200186f803803806200001d81620002ea565b92833981019060a081830312620002e55780516001600160401b0390818111620002e557820191601f93808585011215620002e557835193838511620002ba57602094601f19916200007588830184168801620002ea565b93828552878383010111620002e557869060005b838110620002d057505060009184010152620000a785840162000310565b93604084015192620000c160806060870151960162000310565b976001918280558051938411620002ba576000548381811c91168015620002af575b8a82101462000299578281116200024e575b5088918411600114620001e75783945090839291600094620001db575b50501b916000199060031b1c1916176000555b600480546001600160a01b0319166001600160a01b039485161790556007556008558216156200018b575060098054610100600160b01b03191660089290921b610100600160a81b031691909117600160a81b1790556040516115499081620003268239f35b6084906040519062461bcd60e51b82526004820152602360248201527f4f7261636c6557697468434349503a207a65726f2073656e646572206164647260448201526265737360e81b6064820152fd5b01519250388062000112565b91938316916000805283896000209360005b8b888383106200023657505050106200021c575b505050811b0160005562000125565b015160001960f88460031b161c191690553880806200020d565b868601518855909601959485019487935001620001f9565b60008052896000208380870160051c8201928c88106200028f575b0160051c019084905b82811062000282575050620000f5565b6000815501849062000272565b9250819262000269565b634e487b7160e01b600052602260045260246000fd5b90607f1690620000e3565b634e487b7160e01b600052604160045260246000fd5b81810183015186820184015288920162000089565b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620002ba57604052565b51906001600160a01b0382168203620002e55756fe6080604052600436101561001257600080fd5b60003560e01c80630fe22c1f1461126a5780630ff2d00314611244578063313ce567146112285780633defb9621461120a5780633ee3e84b1461112b5780633f4ba83a146110cf57806345cd078114610fd657806350d25bcd14610faa57806354fd4d5014610f8c5780635c975abb14610f695780635df7a5f014610ef057806364c9450914610e3c578063666cab8d14610d74578063668a0f0214610d5657806366f1b0d114610c735780636fac300714610c305780637284e41614610b245780638456cb5914610ac55780638c65c81f14610a655780638e9b00ba146106a45780638f283970146105ea578063941e6ff8146104425780639a6fc8f514610375578063ce057d6414610348578063d94ad8371461032a578063e17b4932146102c4578063f3dc7d4214610263578063f851a4401461023a578063feaf968c146101cc5763ffb24ae81461016657600080fd5b346101c75760203660031901126101c7577fca49bd3e96f8c410ac7bb5aa61f082c03f16efa790995668bfbb14ce8b5201fb60406004356101b260018060a01b036004541633146113a7565b600854908060085582519182526020820152a1005b600080fd5b346101c75760003660031901126101c7576002805460008181526003602081815260409283902080546001820154968201549190930154845169ffffffffffffffffffff96871681529283019390935292810194909452606084019190915216608082015260a090f35b0390f35b346101c75760003660031901126101c7576004546040516001600160a01b039091168152602090f35b346101c75760203660031901126101c7577fe452a27d3b098a57cdda646c96c15e5e8e1ba64ee911f09e4af4036611fe679260406004356102af60018060a01b036004541633146113a7565b600754908060075582519182526020820152a1005b346101c75760203660031901126101c757600435600a548110156101c757602090600a60005267ffffffffffffffff8160021c7fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8015460c06040519360061b161c168152f35b346101c75760003660031901126101c7576020600854604051908152f35b346101c75760003660031901126101c75760095460405160089190911c6001600160a01b03168152602090f35b346101c75760203660031901126101c75769ffffffffffffffffffff6004358181168082036101c7576000526003602052604060002060028101549081156103fd57805460018201546003909201546040805169ffffffffffffffffffff9687168152602081019390935282019290925260608101929092529290921616608082015260a090f35b60405162461bcd60e51b815260206004820152601b60248201527f41676772656761746f723a20726f756e64206e6f7420666f756e6400000000006044820152606490fd5b346101c75760203660031901126101c7576004356001600160a01b03818116918290036101c757610478816004541633146113a7565b81600052600660205260ff60406000205416156105a5576000828152600660205260408120805460ff191690555b6005908154918282101561059c578392856104c0846112ac565b969054600397881b1c16146104dc5750506001919250016104a6565b90929160001991808301919082116105865761050b846104fe610529946112ac565b905490891b1c16916112ac565b90919060018060a01b038084549260031b9316831b921b1916179055565b8254801561057057019261053c846112ac565b81939154921b1b19169055555b7fa68f290e0030b3bbe80e941d092fca794c6f804cf9f3b77b46c8db5a24e5f4f2600080a2005b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b50505050610549565b60405162461bcd60e51b815260206004820152601b60248201527f41676772656761746f723a206e6f74207472616e736d697474657200000000006044820152606490fd5b346101c75760203660031901126101c7576004356001600160a01b03818116918290036101c757600454908116906106238233146113a7565b821561065f576001600160a01b03191682176004557f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f600080a3005b60405162461bcd60e51b815260206004820152601860248201527f41676772656761746f723a207a65726f206164647265737300000000000000006044820152606490fd5b346101c75760203660031901126101c75733600052600660205260ff6040600020541615610a2057600960ff600954166109e65760025480600052600360205260406000206002810180541580156109cc575b80156109b9575b1561099c57505050600254906001820182116105865760018201906001830160025560405160a0810181811067ffffffffffffffff821117610986576040526004358152600460208201914283526040810142815260608201906001880182526080830194338652600189016000526003602052604060002093518455516001840155516002830155516003820155019060018060a01b039051166bffffffffffffffffffffffff60a01b82541617905560405142815233907f0109fc6f55cf40689f02fbaad7af7fe7bbac8a3d2186600afc7d3e10cac6027160206001870192a36009549260ff8460a81c16610825575b505090505b6040514281527f0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f602060043592a3005b60405163abc343a760e01b8152936000908590600490829060081c6001600160a01b03165afa93841561097a57600094610955575b5060005b8451811015610948578067ffffffffffffffff602060009360051b8801015116602060018060a01b03865460081c1660846040518096819363c69c8ccf60e01b8352866004840152600435602484015260018a0160448401524260648401525af180600091610913575b600194506108d9575b50500161085e565b7f16df9abb1faee246f7130bb203cf919d9e05f9fd368d974e1960807192fe6e586040805160043581528688016020820152a386806108d1565b90506020843d602011610940575b8161092e602093836112f9565b810103126101c75760019351906108c8565b3d9150610921565b50505090508082806107f0565b6109739194503d806000833e61096b81836112f9565b8101906113ec565b928461085a565b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b42905560040180546001600160a01b0319163317905590506107f5565b506109c782546004356114a1565b6106fe565b5060018201546007548101809111610586574210156106f7565b60405162461bcd60e51b81526020600482015260126024820152711059d9dc9959d85d1bdc8e881c185d5cd95960721b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f41676772656761746f723a206f6e6c79207472616e736d6974746572000000006044820152606490fd5b346101c75760203660031901126101c757600435600052600360205260a0604060002080549060018101549060028101546003820154916004600180881b0391015416926040519485526020850152604084015260608301526080820152f35b346101c75760003660031901126101c757610aeb60018060a01b036004541633146113a7565b600160ff1960095416176009557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101c75760003660031901126101c757604051600080549060018260011c9160018416918215610c26575b6020948585108414610c10578587948686529182600014610bf0575050600114610b96575b50610b82925003836112f9565b61023660405192828493845283019061131b565b6000808052859250907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610bd8575050610b82935082010185610b75565b80548389018501528794508693909201918101610bc1565b60ff191685820152610b8295151560051b8501019250879150610b759050565b634e487b7160e01b600052602260045260246000fd5b92607f1692610b50565b346101c75760203660031901126101c7576004356001600160a01b038116908190036101c7576000526006602052602060ff604060002054166040519015158152f35b346101c7576020806003193601126101c75760043567ffffffffffffffff8082168092036101c75760405191600084840152600060408401526000606084015260608352608083019183831090831117610986576040828152600954635322183760e01b8452608485019290925260a48401528390829060081c6001600160a01b031681607f1986610d0860c482018261131b565b0301915afa91821561097a578390600093610d27575b50604051838152f35b90809293503d8311610d4f575b610d3e81856112f9565b810103126101c75751828281610d1e565b503d610d34565b346101c75760003660031901126101c7576020600254604051908152f35b346101c75760003660031901126101c757604051806005548083526020809301809160056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09060005b86828210610e1f578686610dd6828803836112f9565b604051928392818401908285525180915260408401929160005b828110610dff57505050500390f35b83516001600160a01b031685528695509381019392810192600101610df0565b83546001600160a01b031685529093019260019283019201610dc0565b346101c75760003660031901126101c75760095460405163abc343a760e01b8152906000908290600490829060081c6001600160a01b03165afa90811561097a57600091610ed5575b506040518091602080830160208452825180915260206040850193019160005b828110610eb457505050500390f35b835167ffffffffffffffff1685528695509381019392810192600101610ea5565b610eea91503d806000833e61096b81836112f9565b81610e85565b346101c75760203660031901126101c7576004358015158091036101c75760207f3b2caeeadadd5b501b49070cacc05bcf96619cf87eb7f78d6d68ba2776f9254291610f4760018060a01b0360045416331461135b565b6009805460ff60a81b191660a883901b60ff60a81b16179055604051908152a1005b346101c75760003660031901126101c757602060ff600954166040519015158152f35b346101c75760003660031901126101c7576020600154604051908152f35b346101c75760003660031901126101c75760025460005260036020526020604060002054604051908152f35b346101c75760203660031901126101c7576001600160a01b03600435818116918282036101c75761100c906004541633146113a7565b81600052600660205260ff6040600020541661108a578160005260066020526040600020600160ff1982541617905560055490680100000000000000008210156109865761050b82600161106394016005556112ac565b7fe186d2cd46a35a5d588174f99d740494ab980c3e74b8a18a7e94788032d41621600080a2005b60405162461bcd60e51b815260206004820152601f60248201527f41676772656761746f723a20616c7265616479207472616e736d6974746572006044820152606490fd5b346101c75760003660031901126101c7576110f560018060a01b036004541633146113a7565b60ff19600954166009557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b346101c75760203660031901126101c7576004356001600160a01b03818116918281036101c7576111618260045416331461135b565b82156111c55760098054610100600160a81b03198116600893841b610100600160a81b031617909155604080519190921c909216825260208201929092527f51457bd713a803dd1828ff0ff552c87349bd98e472258490c7c861a577db7c389190a1005b60405162461bcd60e51b815260206004820152601c60248201527f4f7261636c6557697468434349503a207a65726f2061646472657373000000006044820152606490fd5b346101c75760003660031901126101c7576020600754604051908152f35b346101c75760003660031901126101c757602060405160088152f35b346101c75760003660031901126101c757602060ff60095460a81c166040519015158152f35b346101c75760203660031901126101c7576004356005548110156101c7576112936020916112ac565b905460405160039290921b1c6001600160a01b03168152f35b6005548110156112e35760056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190600090565b634e487b7160e01b600052603260045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761098657604052565b919082519283825260005b848110611347575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611326565b1561136257565b60405162461bcd60e51b815260206004820152601a60248201527f4f7261636c6557697468434349503a206f6e6c792061646d696e0000000000006044820152606490fd5b156113ae57565b60405162461bcd60e51b815260206004820152601660248201527520b3b3b932b3b0ba37b91d1037b7363c9030b236b4b760511b6044820152606490fd5b9060209081838203126101c757825167ffffffffffffffff938482116101c757019281601f850112156101c757835193818511610986578460051b9060405195611438868401886112f9565b865284808701928201019384116101c7578401905b83821061145c57505050505090565b815183811681036101c757815290840190840161144d565b9190820391821161058657565b811561148b570490565b634e487b7160e01b600052601260045260246000fd5b811561150c5781808211156114df576114b991611474565b9061271091828102928184041490151715610586576114d791611481565b600854111590565b906114e991611474565b90612710918281029281840414901517156105865761150791611481565b6114d7565b505060019056fea26469706673582212208fd347bc4fd5a2ab34bc0235f8e1888894c216302033bba3cf4eed5877c5b3be64736f6c63430008160033", "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c80630fe22c1f1461126a5780630ff2d00314611244578063313ce567146112285780633defb9621461120a5780633ee3e84b1461112b5780633f4ba83a146110cf57806345cd078114610fd657806350d25bcd14610faa57806354fd4d5014610f8c5780635c975abb14610f695780635df7a5f014610ef057806364c9450914610e3c578063666cab8d14610d74578063668a0f0214610d5657806366f1b0d114610c735780636fac300714610c305780637284e41614610b245780638456cb5914610ac55780638c65c81f14610a655780638e9b00ba146106a45780638f283970146105ea578063941e6ff8146104425780639a6fc8f514610375578063ce057d6414610348578063d94ad8371461032a578063e17b4932146102c4578063f3dc7d4214610263578063f851a4401461023a578063feaf968c146101cc5763ffb24ae81461016657600080fd5b346101c75760203660031901126101c7577fca49bd3e96f8c410ac7bb5aa61f082c03f16efa790995668bfbb14ce8b5201fb60406004356101b260018060a01b036004541633146113a7565b600854908060085582519182526020820152a1005b600080fd5b346101c75760003660031901126101c7576002805460008181526003602081815260409283902080546001820154968201549190930154845169ffffffffffffffffffff96871681529283019390935292810194909452606084019190915216608082015260a090f35b0390f35b346101c75760003660031901126101c7576004546040516001600160a01b039091168152602090f35b346101c75760203660031901126101c7577fe452a27d3b098a57cdda646c96c15e5e8e1ba64ee911f09e4af4036611fe679260406004356102af60018060a01b036004541633146113a7565b600754908060075582519182526020820152a1005b346101c75760203660031901126101c757600435600a548110156101c757602090600a60005267ffffffffffffffff8160021c7fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8015460c06040519360061b161c168152f35b346101c75760003660031901126101c7576020600854604051908152f35b346101c75760003660031901126101c75760095460405160089190911c6001600160a01b03168152602090f35b346101c75760203660031901126101c75769ffffffffffffffffffff6004358181168082036101c7576000526003602052604060002060028101549081156103fd57805460018201546003909201546040805169ffffffffffffffffffff9687168152602081019390935282019290925260608101929092529290921616608082015260a090f35b60405162461bcd60e51b815260206004820152601b60248201527f41676772656761746f723a20726f756e64206e6f7420666f756e6400000000006044820152606490fd5b346101c75760203660031901126101c7576004356001600160a01b03818116918290036101c757610478816004541633146113a7565b81600052600660205260ff60406000205416156105a5576000828152600660205260408120805460ff191690555b6005908154918282101561059c578392856104c0846112ac565b969054600397881b1c16146104dc5750506001919250016104a6565b90929160001991808301919082116105865761050b846104fe610529946112ac565b905490891b1c16916112ac565b90919060018060a01b038084549260031b9316831b921b1916179055565b8254801561057057019261053c846112ac565b81939154921b1b19169055555b7fa68f290e0030b3bbe80e941d092fca794c6f804cf9f3b77b46c8db5a24e5f4f2600080a2005b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b50505050610549565b60405162461bcd60e51b815260206004820152601b60248201527f41676772656761746f723a206e6f74207472616e736d697474657200000000006044820152606490fd5b346101c75760203660031901126101c7576004356001600160a01b03818116918290036101c757600454908116906106238233146113a7565b821561065f576001600160a01b03191682176004557f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f600080a3005b60405162461bcd60e51b815260206004820152601860248201527f41676772656761746f723a207a65726f206164647265737300000000000000006044820152606490fd5b346101c75760203660031901126101c75733600052600660205260ff6040600020541615610a2057600960ff600954166109e65760025480600052600360205260406000206002810180541580156109cc575b80156109b9575b1561099c57505050600254906001820182116105865760018201906001830160025560405160a0810181811067ffffffffffffffff821117610986576040526004358152600460208201914283526040810142815260608201906001880182526080830194338652600189016000526003602052604060002093518455516001840155516002830155516003820155019060018060a01b039051166bffffffffffffffffffffffff60a01b82541617905560405142815233907f0109fc6f55cf40689f02fbaad7af7fe7bbac8a3d2186600afc7d3e10cac6027160206001870192a36009549260ff8460a81c16610825575b505090505b6040514281527f0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f602060043592a3005b60405163abc343a760e01b8152936000908590600490829060081c6001600160a01b03165afa93841561097a57600094610955575b5060005b8451811015610948578067ffffffffffffffff602060009360051b8801015116602060018060a01b03865460081c1660846040518096819363c69c8ccf60e01b8352866004840152600435602484015260018a0160448401524260648401525af180600091610913575b600194506108d9575b50500161085e565b7f16df9abb1faee246f7130bb203cf919d9e05f9fd368d974e1960807192fe6e586040805160043581528688016020820152a386806108d1565b90506020843d602011610940575b8161092e602093836112f9565b810103126101c75760019351906108c8565b3d9150610921565b50505090508082806107f0565b6109739194503d806000833e61096b81836112f9565b8101906113ec565b928461085a565b6040513d6000823e3d90fd5b634e487b7160e01b600052604160045260246000fd5b42905560040180546001600160a01b0319163317905590506107f5565b506109c782546004356114a1565b6106fe565b5060018201546007548101809111610586574210156106f7565b60405162461bcd60e51b81526020600482015260126024820152711059d9dc9959d85d1bdc8e881c185d5cd95960721b6044820152606490fd5b60405162461bcd60e51b815260206004820152601c60248201527f41676772656761746f723a206f6e6c79207472616e736d6974746572000000006044820152606490fd5b346101c75760203660031901126101c757600435600052600360205260a0604060002080549060018101549060028101546003820154916004600180881b0391015416926040519485526020850152604084015260608301526080820152f35b346101c75760003660031901126101c757610aeb60018060a01b036004541633146113a7565b600160ff1960095416176009557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b346101c75760003660031901126101c757604051600080549060018260011c9160018416918215610c26575b6020948585108414610c10578587948686529182600014610bf0575050600114610b96575b50610b82925003836112f9565b61023660405192828493845283019061131b565b6000808052859250907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b858310610bd8575050610b82935082010185610b75565b80548389018501528794508693909201918101610bc1565b60ff191685820152610b8295151560051b8501019250879150610b759050565b634e487b7160e01b600052602260045260246000fd5b92607f1692610b50565b346101c75760203660031901126101c7576004356001600160a01b038116908190036101c7576000526006602052602060ff604060002054166040519015158152f35b346101c7576020806003193601126101c75760043567ffffffffffffffff8082168092036101c75760405191600084840152600060408401526000606084015260608352608083019183831090831117610986576040828152600954635322183760e01b8452608485019290925260a48401528390829060081c6001600160a01b031681607f1986610d0860c482018261131b565b0301915afa91821561097a578390600093610d27575b50604051838152f35b90809293503d8311610d4f575b610d3e81856112f9565b810103126101c75751828281610d1e565b503d610d34565b346101c75760003660031901126101c7576020600254604051908152f35b346101c75760003660031901126101c757604051806005548083526020809301809160056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db09060005b86828210610e1f578686610dd6828803836112f9565b604051928392818401908285525180915260408401929160005b828110610dff57505050500390f35b83516001600160a01b031685528695509381019392810192600101610df0565b83546001600160a01b031685529093019260019283019201610dc0565b346101c75760003660031901126101c75760095460405163abc343a760e01b8152906000908290600490829060081c6001600160a01b03165afa90811561097a57600091610ed5575b506040518091602080830160208452825180915260206040850193019160005b828110610eb457505050500390f35b835167ffffffffffffffff1685528695509381019392810192600101610ea5565b610eea91503d806000833e61096b81836112f9565b81610e85565b346101c75760203660031901126101c7576004358015158091036101c75760207f3b2caeeadadd5b501b49070cacc05bcf96619cf87eb7f78d6d68ba2776f9254291610f4760018060a01b0360045416331461135b565b6009805460ff60a81b191660a883901b60ff60a81b16179055604051908152a1005b346101c75760003660031901126101c757602060ff600954166040519015158152f35b346101c75760003660031901126101c7576020600154604051908152f35b346101c75760003660031901126101c75760025460005260036020526020604060002054604051908152f35b346101c75760203660031901126101c7576001600160a01b03600435818116918282036101c75761100c906004541633146113a7565b81600052600660205260ff6040600020541661108a578160005260066020526040600020600160ff1982541617905560055490680100000000000000008210156109865761050b82600161106394016005556112ac565b7fe186d2cd46a35a5d588174f99d740494ab980c3e74b8a18a7e94788032d41621600080a2005b60405162461bcd60e51b815260206004820152601f60248201527f41676772656761746f723a20616c7265616479207472616e736d6974746572006044820152606490fd5b346101c75760003660031901126101c7576110f560018060a01b036004541633146113a7565b60ff19600954166009557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b346101c75760203660031901126101c7576004356001600160a01b03818116918281036101c7576111618260045416331461135b565b82156111c55760098054610100600160a81b03198116600893841b610100600160a81b031617909155604080519190921c909216825260208201929092527f51457bd713a803dd1828ff0ff552c87349bd98e472258490c7c861a577db7c389190a1005b60405162461bcd60e51b815260206004820152601c60248201527f4f7261636c6557697468434349503a207a65726f2061646472657373000000006044820152606490fd5b346101c75760003660031901126101c7576020600754604051908152f35b346101c75760003660031901126101c757602060405160088152f35b346101c75760003660031901126101c757602060ff60095460a81c166040519015158152f35b346101c75760203660031901126101c7576004356005548110156101c7576112936020916112ac565b905460405160039290921b1c6001600160a01b03168152f35b6005548110156112e35760056000527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00190600090565b634e487b7160e01b600052603260045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761098657604052565b919082519283825260005b848110611347575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201611326565b1561136257565b60405162461bcd60e51b815260206004820152601a60248201527f4f7261636c6557697468434349503a206f6e6c792061646d696e0000000000006044820152606490fd5b156113ae57565b60405162461bcd60e51b815260206004820152601660248201527520b3b3b932b3b0ba37b91d1037b7363c9030b236b4b760511b6044820152606490fd5b9060209081838203126101c757825167ffffffffffffffff938482116101c757019281601f850112156101c757835193818511610986578460051b9060405195611438868401886112f9565b865284808701928201019384116101c7578401905b83821061145c57505050505090565b815183811681036101c757815290840190840161144d565b9190820391821161058657565b811561148b570490565b634e487b7160e01b600052601260045260246000fd5b811561150c5781808211156114df576114b991611474565b9061271091828102928184041490151715610586576114d791611481565b600854111590565b906114e991611474565b90612710918281029281840414901517156105865761150791611481565b6114d7565b505060019056fea26469706673582212208fd347bc4fd5a2ab34bc0235f8e1888894c216302033bba3cf4eed5877c5b3be64736f6c63430008160033", "linkReferences": {}, "deployedLinkReferences": {} }