Files
smom-dbis-138/artifacts/contracts/bridge/trustless/integration/StablecoinPegManager.sol/StablecoinPegManager.json
2026-03-02 12:14:09 -08:00

592 lines
30 KiB
JSON

{
"_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": {}
}