{ "_format": "hh-sol-artifact-1", "contractName": "StablecoinPegManager", "sourceName": "contracts/bridge/trustless/integration/StablecoinPegManager.sol", "abi": [ { "inputs": [ { "internalType": "address", "name": "_reserveSystem", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AssetNotRegistered", "type": "error" }, { "inputs": [], "name": "InvalidTargetPrice", "type": "error" }, { "inputs": [], "name": "InvalidThreshold", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "inputs": [], "name": "ZeroAddress", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "targetPrice", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "thresholdBps", "type": "uint256" } ], "name": "AssetRegistered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "currentPrice", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "targetPrice", "type": "uint256" }, { "indexed": false, "internalType": "int256", "name": "deviationBps", "type": "int256" }, { "indexed": false, "internalType": "bool", "name": "isMaintained", "type": "bool" } ], "name": "PegChecked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "oldThreshold", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newThreshold", "type": "uint256" } ], "name": "PegThresholdUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "int256", "name": "deviationBps", "type": "int256" }, { "indexed": false, "internalType": "uint256", "name": "requiredAdjustment", "type": "uint256" } ], "name": "RebalancingTriggered", "type": "event" }, { "inputs": [], "name": "ETH_TARGET_PRICE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_PEG_THRESHOLD_BPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "USD_TARGET_PRICE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "assetPegs", "outputs": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint256", "name": "targetPrice", "type": "uint256" }, { "internalType": "uint256", "name": "thresholdBps", "type": "uint256" }, { "internalType": "bool", "name": "isActive", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" }, { "internalType": "uint256", "name": "currentPrice", "type": "uint256" }, { "internalType": "uint256", "name": "targetPrice", "type": "uint256" } ], "name": "calculateDeviation", "outputs": [ { "internalType": "int256", "name": "deviationBps", "type": "int256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "weth", "type": "address" } ], "name": "checkETHpeg", "outputs": [ { "internalType": "bool", "name": "isMaintained", "type": "bool" }, { "internalType": "int256", "name": "deviationBps", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "stablecoin", "type": "address" } ], "name": "checkUSDpeg", "outputs": [ { "internalType": "bool", "name": "isMaintained", "type": "bool" }, { "internalType": "int256", "name": "deviationBps", "type": "int256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ethPegThresholdBps", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" } ], "name": "getPegStatus", "outputs": [ { "internalType": "uint256", "name": "currentPrice", "type": "uint256" }, { "internalType": "uint256", "name": "targetPrice", "type": "uint256" }, { "internalType": "int256", "name": "deviationBps", "type": "int256" }, { "internalType": "bool", "name": "isMaintained", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSupportedAssets", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isUSDStablecoin", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "isWETH", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" } ], "name": "registerUSDStablecoin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "weth", "type": "address" } ], "name": "registerWETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reserveSystem", "outputs": [ { "internalType": "contract IReserveSystem", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newThreshold", "type": "uint256" } ], "name": "setETHPegThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newThreshold", "type": "uint256" } ], "name": "setUSDPegThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "supportedAssets", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "asset", "type": "address" } ], "name": "triggerRebalancing", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "usdPegThresholdBps", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x60a03461010357601f61125638819003918201601f19168301916001600160401b038311848410176101085780849260209460405283398101031261010357516001600160a01b03808216918290036101035733156100ea576000543360018060a01b0319821617600055604051913391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3600180556032600255600a60035581156100db5750608052604051611137908161011f82396080518181816103c201528181610a4501528181610b5b0152610cdd0152f35b63d92e233d60e01b8152600490fd5b604051631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060409080825260048036101561001657600080fd5b600091823560e01c9081631ae2897a14610e74575080631b9029b114610e1f578063269ddeb614610e005780633d5121fd1461074857806342056b9e14610dc25780634ff61ad914610d8e5780635823c5ad14610c4457806360fed1cf14610c0657806363ef954914610ace578063715018a614610a7457806381c4af5a14610a30578063862a8606146109185780638da5cb5b146108f057806392717ae01461078f578063c68dbb371461074d578063c878a74614610748578063e3f60fdb14610729578063e51b3bd114610608578063e5406dbf14610540578063ea334b9f146104dd578063ebc0193a1461031b578063f2fde38b1461028f5763fb5ea5fa1461012157600080fd5b3461028b57602036600319011261028b5761013a610e90565b92610143611095565b6001600160a01b0384811692831561027d5783855260205281842094600195600160ff1982541617905560025491835161017c81610f1b565b8581526101ee6020820191670de0b6b3a764000095868452878201908152606082019360018552898b52600760205285898c209351166bffffffffffffffffffffffff60a01b8454161783555160018301555160028201556003809351151591019060ff801983541691151516179055565b86918791600654925b83811061023d575b505050506000805160206110e2833981519152949596501561022e575b5060025482519182526020820152a280f35b61023790611053565b3861021c565b888361024883610ece565b905490851b1c161461025b578a016101f7565b50505050506000805160206110e28339815191529394958695943880806101ff565b825163d92e233d60e01b8152fd5b5080fd5b50829034610317576020366003190112610317576102ab610e90565b906102b4611095565b6001600160a01b0391821692831561030157505082546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b50823461031757602036600319011261031757610336610e90565b9061033f611095565b6002600154146104ce5760026001556001600160a01b0391821680855260076020528185208251919490919061037482610f1b565b8483541680835260018401549260208101938452606060ff60036002880154978985019889520154161515910152156104c0578560248592835197889384926341976e0960e01b84528301527f0000000000000000000000000000000000000000000000000000000000000000165afa9384156104b6578694610486575b506103fe815185610fd9565b918683121561047f5761041083610fc8565b905b5110610421575b856001805580f35b7f45fa25f3d61d6d5be3e9d523386529a391869877a00624b9970f93752f846d16938151808211600014610470575061045b915190610f85565b82519182526020820152a28180808080610419565b61047a9250610f85565b61045b565b8290610412565b6104a7919450833d85116104af575b61049f8183610f4d565b810190610f6f565b5092866103f2565b503d610495565b83513d88823e3d90fd5b8351630719d53360e21b8152fd5b51633ee5aeb560e01b81529050fd5b82843461028b57602036600319011261028b576080916001600160a01b039190819083610508610e90565b168152600760205220918254169160018101549160ff6003600284015493015416928151948552602085015283015215156060820152f35b5050346106055780600319360112610605579080519182906006549182855260208095018093600684527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f90845b8181106105e857505050816105a4910382610f4d565b83519485948186019282875251809352850193925b8281106105c857505050500390f35b83516001600160a01b0316855286955093810193928101926001016105b9565b82546001600160a01b03168452928801926001928301920161058e565b80fd5b508234610317576020908160031936011261072557823590610628611095565b6101f48211610716576002916002549481600255865b876006548210156106f65790866001928661065884610ece565b868060a01b03809254600392831b1c168452878552888b60ff8587205416610688575b505050505050500161063e565b846000805160206110c283398151915296856106a38b610ece565b905490871b1c1681526007808a5283838320015499876106c28d610ece565b905490891b1c168352522001556106d886610ece565b9054911b1c16928151908152878b820152a28689868c80888b61067b565b806000805160206110c2833981519152868a878b8351928352820152a280f35b5163aabd5a0960e01b81528390fd5b8380fd5b82843461028b578160031936011261028b576020906003549051908152f35b610eab565b508290346103175760203660031901126103175735916006548310156106055750610779602092610ece565b905491519160018060a01b039160031b1c168152f35b503461028b57602036600319011261028b576107a9610e90565b926107b2611095565b6001600160a01b039380851692831561027d57508390838252600560205282822095600196600160ff1982541617905560036108616003546003888851926107f984610f1b565b81845260208401878b670de0b6b3a76400009b8c845281880194855260608801956001875281526007602052209551166bffffffffffffffffffffffff60a01b86541617855551600185015551600284015551151591019060ff801983541691151516179055565b86918791600654925b8381106108b0575b505050506000805160206110e283398151915294959650156108a1575b5060035482519182526020820152a280f35b6108aa90611053565b3861088f565b88836108bb83610ece565b905490851b1c16146108ce578a0161086a565b50505050506000805160206110e2833981519152939495869594388080610872565b82843461028b578160031936011261028b57905490516001600160a01b039091168152602090f35b509034610605576020908160031936011261060557823592610938611095565b6101f48411610a225750600393845493808655825b600654811015610a01578087610964600193610ece565b90848060a01b039182915490841b1c168752600588528560ff8189205416610990575b5050500161094d565b816000805160206110c2833981519152926109aa86610ece565b905490861b1c16895286826007808d52838c6002938491200154976109ce8a610ece565b9054911b1c168c528c52838b2001556109e685610ece565b9054908d1b1c16928151908152868a820152a2873885610987565b509382946000805160206110c283398151915293948351928352820152a280f35b845163aabd5a0960e01b8152fd5b82843461028b578160031936011261028b57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610605578060031936011261060557610a8d611095565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b508234610317576020366003190112610317576001600160a01b039283610af3610e90565b1691828252600760205280822092815194610b0d86610f1b565b8685541680875260018601549660208101978852606060ff600360028a0154998885019a8b52015416151591015215610bf8579060248392835198899384926341976e0960e01b84528301527f0000000000000000000000000000000000000000000000000000000000000000165afa938415610bed576080958395610bcd575b505192610b9b8486610fd9565b92831215610bc657610bac83610fc8565b905b51101592815194855260208501528301526060820152f35b8290610bae565b610be5919550823d84116104af5761049f8183610f4d565b509386610b8e565b5051903d90823e3d90fd5b8251630719d53360e21b8152fd5b508290346103175760203660031901126103175760209260ff918391906001600160a01b03610c33610e90565b168252855220541690519015158152f35b50829034610317576020366003190112610317576001600160a01b0380610c69610e90565b1690818552600560205260ff848620541615610d7e57818552600760205283808620926024825195610c9a87610f1b565b84865416875260018601549660208101978852606060ff600360028a0154998885019a8b520154161515910152835194859384926341976e0960e01b84528301527f0000000000000000000000000000000000000000000000000000000000000000165afa8015610d7457610d4993610d1c928792610d54575b505190610fd9565b93841215610d4d57610d2d84610fc8565b905b519251921015825260208201929092529081906040820190565b0390f35b8390610d2f565b610d6c919250863d88116104af5761049f8183610f4d565b509087610d14565b84513d87823e3d90fd5b8351630719d53360e21b81528390fd5b82843461028b57606036600319011261028b57602090610dac610e90565b50610dbb604435602435610fd9565b9051908152f35b82843461028b57602036600319011261028b5760209160ff9082906001600160a01b03610ded610e90565b1681526005855220541690519015158152f35b82843461028b578160031936011261028b576020906002549051908152f35b50829034610317576020366003190112610317576001600160a01b0380610e44610e90565b16908185528260205260ff848620541615610d7e57818552600760205283808620926024825195610c9a87610f1b565b83903461028b578160031936011261028b57806101f460209252f35b600435906001600160a01b0382168203610ea657565b600080fd5b34610ea6576000366003190112610ea6576020604051670de0b6b3a76400008152f35b600654811015610f055760066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0190600090565b634e487b7160e01b600052603260045260246000fd5b6080810190811067ffffffffffffffff821117610f3757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610f3757604052565b9190826040910312610ea6576020825192015190565b91908203918211610f9257565b634e487b7160e01b600052601160045260246000fd5b8115610fb2570490565b634e487b7160e01b600052601260045260246000fd5b600160ff1b8114610f925760000390565b8115611041578180821061101157610ff091610f85565b9061271091828102928184041490151715610f925761100e91610fa8565b90565b9061101b91610f85565b61271090818102918183041490151715610f925761100e9161103c91610fa8565b610fc8565b60405163ba38d3f160e01b8152600490fd5b60065468010000000000000000811015610f37578060016110779201600655610ece565b60018060a09493941b038084549260031b9316831b921b1916179055565b6000546001600160a01b031633036110a957565b60405163118cdaa760e01b8152336004820152602490fdfe47f8ed2aea32e428c1e10f7b16a0f55271340c1c92a48b5a5f4dd0dcab18756e79027ea9fff2475804c5daad7cfe19ab96bc4e10ffcc09ef8e446784e6733aa3a26469706673582212203e78b511fa653f93a2ef378ae3dc7e108b2b1884a482a9de69e49565b103411364736f6c63430008160033", "deployedBytecode": "0x608060409080825260048036101561001657600080fd5b600091823560e01c9081631ae2897a14610e74575080631b9029b114610e1f578063269ddeb614610e005780633d5121fd1461074857806342056b9e14610dc25780634ff61ad914610d8e5780635823c5ad14610c4457806360fed1cf14610c0657806363ef954914610ace578063715018a614610a7457806381c4af5a14610a30578063862a8606146109185780638da5cb5b146108f057806392717ae01461078f578063c68dbb371461074d578063c878a74614610748578063e3f60fdb14610729578063e51b3bd114610608578063e5406dbf14610540578063ea334b9f146104dd578063ebc0193a1461031b578063f2fde38b1461028f5763fb5ea5fa1461012157600080fd5b3461028b57602036600319011261028b5761013a610e90565b92610143611095565b6001600160a01b0384811692831561027d5783855260205281842094600195600160ff1982541617905560025491835161017c81610f1b565b8581526101ee6020820191670de0b6b3a764000095868452878201908152606082019360018552898b52600760205285898c209351166bffffffffffffffffffffffff60a01b8454161783555160018301555160028201556003809351151591019060ff801983541691151516179055565b86918791600654925b83811061023d575b505050506000805160206110e2833981519152949596501561022e575b5060025482519182526020820152a280f35b61023790611053565b3861021c565b888361024883610ece565b905490851b1c161461025b578a016101f7565b50505050506000805160206110e28339815191529394958695943880806101ff565b825163d92e233d60e01b8152fd5b5080fd5b50829034610317576020366003190112610317576102ab610e90565b906102b4611095565b6001600160a01b0391821692831561030157505082546001600160a01b0319811683178455167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b50823461031757602036600319011261031757610336610e90565b9061033f611095565b6002600154146104ce5760026001556001600160a01b0391821680855260076020528185208251919490919061037482610f1b565b8483541680835260018401549260208101938452606060ff60036002880154978985019889520154161515910152156104c0578560248592835197889384926341976e0960e01b84528301527f0000000000000000000000000000000000000000000000000000000000000000165afa9384156104b6578694610486575b506103fe815185610fd9565b918683121561047f5761041083610fc8565b905b5110610421575b856001805580f35b7f45fa25f3d61d6d5be3e9d523386529a391869877a00624b9970f93752f846d16938151808211600014610470575061045b915190610f85565b82519182526020820152a28180808080610419565b61047a9250610f85565b61045b565b8290610412565b6104a7919450833d85116104af575b61049f8183610f4d565b810190610f6f565b5092866103f2565b503d610495565b83513d88823e3d90fd5b8351630719d53360e21b8152fd5b51633ee5aeb560e01b81529050fd5b82843461028b57602036600319011261028b576080916001600160a01b039190819083610508610e90565b168152600760205220918254169160018101549160ff6003600284015493015416928151948552602085015283015215156060820152f35b5050346106055780600319360112610605579080519182906006549182855260208095018093600684527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f90845b8181106105e857505050816105a4910382610f4d565b83519485948186019282875251809352850193925b8281106105c857505050500390f35b83516001600160a01b0316855286955093810193928101926001016105b9565b82546001600160a01b03168452928801926001928301920161058e565b80fd5b508234610317576020908160031936011261072557823590610628611095565b6101f48211610716576002916002549481600255865b876006548210156106f65790866001928661065884610ece565b868060a01b03809254600392831b1c168452878552888b60ff8587205416610688575b505050505050500161063e565b846000805160206110c283398151915296856106a38b610ece565b905490871b1c1681526007808a5283838320015499876106c28d610ece565b905490891b1c168352522001556106d886610ece565b9054911b1c16928151908152878b820152a28689868c80888b61067b565b806000805160206110c2833981519152868a878b8351928352820152a280f35b5163aabd5a0960e01b81528390fd5b8380fd5b82843461028b578160031936011261028b576020906003549051908152f35b610eab565b508290346103175760203660031901126103175735916006548310156106055750610779602092610ece565b905491519160018060a01b039160031b1c168152f35b503461028b57602036600319011261028b576107a9610e90565b926107b2611095565b6001600160a01b039380851692831561027d57508390838252600560205282822095600196600160ff1982541617905560036108616003546003888851926107f984610f1b565b81845260208401878b670de0b6b3a76400009b8c845281880194855260608801956001875281526007602052209551166bffffffffffffffffffffffff60a01b86541617855551600185015551600284015551151591019060ff801983541691151516179055565b86918791600654925b8381106108b0575b505050506000805160206110e283398151915294959650156108a1575b5060035482519182526020820152a280f35b6108aa90611053565b3861088f565b88836108bb83610ece565b905490851b1c16146108ce578a0161086a565b50505050506000805160206110e2833981519152939495869594388080610872565b82843461028b578160031936011261028b57905490516001600160a01b039091168152602090f35b509034610605576020908160031936011261060557823592610938611095565b6101f48411610a225750600393845493808655825b600654811015610a01578087610964600193610ece565b90848060a01b039182915490841b1c168752600588528560ff8189205416610990575b5050500161094d565b816000805160206110c2833981519152926109aa86610ece565b905490861b1c16895286826007808d52838c6002938491200154976109ce8a610ece565b9054911b1c168c528c52838b2001556109e685610ece565b9054908d1b1c16928151908152868a820152a2873885610987565b509382946000805160206110c283398151915293948351928352820152a280f35b845163aabd5a0960e01b8152fd5b82843461028b578160031936011261028b57517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b8234610605578060031936011261060557610a8d611095565b80546001600160a01b03198116825581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b508234610317576020366003190112610317576001600160a01b039283610af3610e90565b1691828252600760205280822092815194610b0d86610f1b565b8685541680875260018601549660208101978852606060ff600360028a0154998885019a8b52015416151591015215610bf8579060248392835198899384926341976e0960e01b84528301527f0000000000000000000000000000000000000000000000000000000000000000165afa938415610bed576080958395610bcd575b505192610b9b8486610fd9565b92831215610bc657610bac83610fc8565b905b51101592815194855260208501528301526060820152f35b8290610bae565b610be5919550823d84116104af5761049f8183610f4d565b509386610b8e565b5051903d90823e3d90fd5b8251630719d53360e21b8152fd5b508290346103175760203660031901126103175760209260ff918391906001600160a01b03610c33610e90565b168252855220541690519015158152f35b50829034610317576020366003190112610317576001600160a01b0380610c69610e90565b1690818552600560205260ff848620541615610d7e57818552600760205283808620926024825195610c9a87610f1b565b84865416875260018601549660208101978852606060ff600360028a0154998885019a8b520154161515910152835194859384926341976e0960e01b84528301527f0000000000000000000000000000000000000000000000000000000000000000165afa8015610d7457610d4993610d1c928792610d54575b505190610fd9565b93841215610d4d57610d2d84610fc8565b905b519251921015825260208201929092529081906040820190565b0390f35b8390610d2f565b610d6c919250863d88116104af5761049f8183610f4d565b509087610d14565b84513d87823e3d90fd5b8351630719d53360e21b81528390fd5b82843461028b57606036600319011261028b57602090610dac610e90565b50610dbb604435602435610fd9565b9051908152f35b82843461028b57602036600319011261028b5760209160ff9082906001600160a01b03610ded610e90565b1681526005855220541690519015158152f35b82843461028b578160031936011261028b576020906002549051908152f35b50829034610317576020366003190112610317576001600160a01b0380610e44610e90565b16908185528260205260ff848620541615610d7e57818552600760205283808620926024825195610c9a87610f1b565b83903461028b578160031936011261028b57806101f460209252f35b600435906001600160a01b0382168203610ea657565b600080fd5b34610ea6576000366003190112610ea6576020604051670de0b6b3a76400008152f35b600654811015610f055760066000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0190600090565b634e487b7160e01b600052603260045260246000fd5b6080810190811067ffffffffffffffff821117610f3757604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610f3757604052565b9190826040910312610ea6576020825192015190565b91908203918211610f9257565b634e487b7160e01b600052601160045260246000fd5b8115610fb2570490565b634e487b7160e01b600052601260045260246000fd5b600160ff1b8114610f925760000390565b8115611041578180821061101157610ff091610f85565b9061271091828102928184041490151715610f925761100e91610fa8565b90565b9061101b91610f85565b61271090818102918183041490151715610f925761100e9161103c91610fa8565b610fc8565b60405163ba38d3f160e01b8152600490fd5b60065468010000000000000000811015610f37578060016110779201600655610ece565b60018060a09493941b038084549260031b9316831b921b1916179055565b6000546001600160a01b031633036110a957565b60405163118cdaa760e01b8152336004820152602490fdfe47f8ed2aea32e428c1e10f7b16a0f55271340c1c92a48b5a5f4dd0dcab18756e79027ea9fff2475804c5daad7cfe19ab96bc4e10ffcc09ef8e446784e6733aa3a26469706673582212203e78b511fa653f93a2ef378ae3dc7e108b2b1884a482a9de69e49565b103411364736f6c63430008160033", "linkReferences": {}, "deployedLinkReferences": {} }