Active Modules & Blueprints
Technical Information
In this section, you'll find a comprehensive directory of our currently active modules and blueprints. Whenever you encounter parameters requiring a module or blueprint name, refer to this list.
Protocol
Active Modules
Contract Address (Sepolia)
ABI
Protocol
0xe8D7140bBb3cdE7FA01F5bE171d0B4eE5B35E7ab
{"abi":[{"type":"constructor","inputs":[{"name":"concreteStorage_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ACL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_LENDER_MARKET","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_CONCRETE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_MASTERVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_PORTFOLIO","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_STREAMVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_ETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_USDC","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_WETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CONCRETE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_CLAIM_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_LOAN_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PORTFOLIO_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PROTECTION_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_RECEIPT_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_REWARDS_TREASURY","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_STAKING_CONTRACT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_TOKEN_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"MODULE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER_NAME_MODULES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_POSITION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ROLE_NAME_USER_TO_EXIST","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_DURATION_AND_REWARDS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_RECEIPT_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"SUDO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_CLAIM","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTIONID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_UPDATES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_BORROWDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANUPDATE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_PORTFOLIOID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"execute","inputs":[{"name":"moduleName_","type":"string","internalType":"string"},{"name":"value_","type":"uint256","internalType":"uint256"},{"name":"data_","type":"bytes","internalType":"bytes"},{"name":"operation_","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAddress","inputs":[{"name":"moduleName_","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"ExecutionFailure","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ExecutionSuccess","inputs":[{"name":"txHash","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b5060405162001fa138038062001fa183398101604081905262000034916200034d565b8080604051602001620000559067141493d513d0d3d360c21b815260080190565b60408051601f1981840301815291905280516020909101206001600160a01b038216620000d55760405162461bcd60e51b815260206004820152602360248201527f4552523a2053746f7261676520616464726573732063616e6e6f74206265207a60448201526265726f60e81b60648201526084015b60405180910390fd5b6001600160e01b031981166200012e5760405162461bcd60e51b815260206004820152601d60248201527f4552523a204e616d6573706163652063616e6e6f74206265207a65726f0000006044820152606401620000cc565b6001600160a01b039091166080526001600160e01b03191660a05250604080518082018252601681527f416464726573732e4d616e616765722e4d6f64756c65000000000000000000006020808301919091529151600092620001c39291620001ad91016020808252600190820152601f60fa1b604082015260600190565b60408051601f19818403018152919052620002c1565b905060006080516001600160a01b03166321f8a721836040518263ffffffff1660e01b8152600401620001f891815260200190565b602060405180830381865afa15801562000216573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023c91906200034d565b604051632f47185360e11b81526001600160a01b038216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156200029357600080fd5b505af4158015620002a8573d6000803e3d6000fd5b505050506001600160a01b031660c052506200041c9050565b60a051604051631ed43b8b60e21b815260009173__$cb588f1a84862ec6179da8c4e68bd890a8$__91637b50ee2c91620003029187908790600401620003c0565b602060405180830381865af415801562000320573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000346919062000402565b9392505050565b6000602082840312156200036057600080fd5b81516001600160a01b03811681146200034657600080fd5b6000815180845260005b81811015620003a05760208185018101518683018201520162000382565b506000602082860101526020601f19601f83011685010191505092915050565b63ffffffff60e01b84168152606060208201526000620003e4606083018562000378565b8281036040840152620003f8818562000378565b9695505050505050565b6000602082840312156200041557600080fd5b5051919050565b60805160a05160c051611b4e62000453600039600081816112e40152611481015260006115e4015260006111960152611b4e6000f3fe608060405234801561001057600080fd5b50600436106103c35760003560e01c80638b3e0471116101ff578063be22fa1e1161011a578063d83205c0116100ad578063e642ad341161007c578063e642ad3414610d71578063eaca386414610dad578063ec11384a14610db5578063f61e60f214610df157600080fd5b8063d83205c014610cb5578063d88597de14610cf1578063dbd55fb314610d2d578063e51a3bab14610d3557600080fd5b8063ca6d5e33116100e9578063ca6d5e3314610bf9578063ccca891114610c35578063d017d35714610c3d578063d15263d314610c7957600080fd5b8063be22fa1e14610b75578063bf40fac114610b7d578063c414d4f914610bb5578063c5ad787914610bbd57600080fd5b80639e5f854211610192578063aacb7f3411610161578063aacb7f3414610ab9578063af895a3b14610ac1578063b70855fb14610afd578063ba9a08d714610b3957600080fd5b80639e5f854214610a6d578063a2fd43c514610a75578063a5be606314610a7d578063a652cb80146103f857600080fd5b806391b9b827116101ce57806391b9b82714610a1457806395789e1c146104785780639863e42014610a1c5780639d18526414610a3157600080fd5b80638b3e04711461098c5780638b40da7d146109c85780638c3e62b6146109d057806391aab3e4146109d857600080fd5b80635e209249116102ef578063697e744c1161028257806379c52aca1161025157806379c52aca1461089c5780637a25c9d3146108d85780637d49df3b146109145780637d95de8e1461095057600080fd5b8063697e744c146107e05780636a0b3f64146107e8578063724348ab14610824578063739baf491461086057600080fd5b806361945bfc116102be57806361945bfc146106f057806362a4c3df1461072c578063638bf74f14610768578063678df18f146107a457600080fd5b80635e209249146106685780635e61dc38146106705780635f39ca2214610678578063608dade9146106b457600080fd5b8063264c135611610367578063423ac8d911610336578063423ac8d91461057857806342ff308b146105b4578063430c6fe6146105f057806359dcf3f61461062c57600080fd5b8063264c1356146104bc5780632a0f4d6b146104f85780632d1da17e14610500578063420ea3601461053c57600080fd5b8063094d3a34116103a3578063094d3a34146104345780630e4943321461043c57806325889b221461047857806326026d181461048057600080fd5b806272e140146103c8578062a9d96e146103e3578063057afbfe146103f8575b600080fd5b6103d0610e2d565b6040519081526020015b60405180910390f35b6103eb610e92565b6040516103da91906116bc565b6103eb6040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b6103d0610eae565b6103eb6040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b6103d0610edf565b6103eb6040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6103eb6040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b6103d0610f10565b6103eb6040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6103eb6040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6103eb6040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6103eb6040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6103eb6040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6103eb6040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b6103d0610f41565b6103eb610f72565b6103eb6040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6103eb6040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6103eb6040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6103eb6040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6103eb6040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6103eb6040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b6103eb610f8e565b6103eb6040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b6103eb6040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6103eb6040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6103eb6040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6103eb6040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b6103eb6040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6103eb6040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6103eb6040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b6103d0610faa565b6103d0610fdb565b6103eb6040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b6103d061100c565b610a2f610a2a3660046117b2565b61103d565b005b6103eb6040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b6103eb6113d1565b6103eb6113ed565b6103eb6040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b6103eb611409565b6103eb6040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6103eb6040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6103eb6040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b6103eb611425565b610b90610b8b36600461184a565b611441565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103da565b6103eb6114ff565b6103eb6040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6103eb6040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b6103d061151b565b6103eb6040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6103eb6040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6103eb6040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6103eb6040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b6103d061154c565b6103eb6040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6103eb6040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b6103eb61157d565b6103eb6040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6103eb6040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b604051806060016040528060248152602001611b2a6024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610e5a565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610e5a565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610e5a565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610e5a565b604051806060016040528060298152602001611ab16029913981565b604051806060016040528060238152602001611a8e6023913981565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610e5a565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610e5a565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610e5a565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016110d3907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008285015282519182018690523382840152825180830384018152606090920190925290925060009161116491611599565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190611887565b6112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6040517fb1d40e5b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b1d40e5b9061131f908a908a908a908a906004016118a9565b6020604051808303816000875af115801561133e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113629190611887565b6113c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4661696c75726520746f206578656375746520636f6465000000000000000000604482015260640161129e565b50505050505050565b604051806060016040528060258152602001611a206025913981565b604051806060016040528060288152602001611a456028913981565b6040518060600160405280602b8152602001611aff602b913981565b604051806060016040528060218152602001611a6d6021913981565b6040517f383dac0a00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063383dac0a906114b8908590309060040161191d565b602060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190611955565b92915050565b604051806060016040528060258152602001611ada6025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610e5a565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610e5a565b6040518060600160405280602481526020016119fc6024913981565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c90611610907f0000000000000000000000000000000000000000000000000000000000000000908790879060040161198b565b602060405180830381865af415801561162d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165191906119e2565b9392505050565b6000815180845260005b8181101561167e57602081850181015186830182015201611662565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006116516020830184611658565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115611719576117196116cf565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561175f5761175f6116cf565b8160405280935085815286868601111561177857600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126117a357600080fd5b611651838335602085016116fe565b600080600080608085870312156117c857600080fd5b843567ffffffffffffffff808211156117e057600080fd5b6117ec88838901611792565b955060208701359450604087013591508082111561180957600080fd5b508501601f8101871361181b57600080fd5b61182a878235602084016116fe565b92505060608501356002811061183f57600080fd5b939692955090935050565b60006020828403121561185c57600080fd5b813567ffffffffffffffff81111561187357600080fd5b61187f84828501611792565b949350505050565b60006020828403121561189957600080fd5b8151801515811461165157600080fd5b6080815260006118bc6080830187611658565b85602084015282810360408401526118d48186611658565b9150506002831061190e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82606083015295945050505050565b6040815260006119306040830185611658565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b60006020828403121561196757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461165157600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000841681526060602082015260006119c66060830185611658565b82810360408401526119d88185611658565b9695505050505050565b6000602082840312156119f457600080fd5b505191905056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"386:1089:112:-:0;;;593:287;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;640:16;458::117;493:28;;;;;;-1:-1:-1;;;511:23:264;;559:1;550:11;;309:258;493:28:117;;;;-1:-1:-1;;493:28:117;;;;;;;;;483:39;;493:28;483:39;;;;-1:-1:-1;;;;;897:29:148;;889:77;;;;-1:-1:-1;;;889:77:148;;774:2:264;889:77:148;;;756:21:264;813:2;793:18;;;786:30;852:34;832:18;;;825:62;-1:-1:-1;;;903:18:264;;;896:33;946:19;;889:77:148;;;;;;;;;-1:-1:-1;;;;;;984:23:148;;976:65;;;;-1:-1:-1;;;976:65:148;;1178:2:264;976:65:148;;;1160:21:264;1217:2;1197:18;;;1190:30;1256:31;1236:18;;;1229:59;1305:18;;976:65:148;:353:264;:65:148;-1:-1:-1;;;;;1051:51:148;;;;;-1:-1:-1;;;;;;1112:22:148;;;-1:-1:-1;692:22:112::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;;716:15;;668:11:::1;::::0;682:50:::1;::::0;692:22;716:15:::1;::::0;::::1;1536:2:264::0;1518:21;;;1575:1;1555:18;;;1548:29;-1:-1:-1;;;1608:2:264;1593:18;;1586:31;1649:2;1634:18;;1334:324;716:15:112::1;;::::0;;-1:-1:-1;;716:15:112;;::::1;::::0;;;;;;682:9:::1;:50::i;:::-;668:64;;742:12;757:15;;-1:-1:-1::0;;;;;757:26:112::1;;784:3;757:31;;;;;;;;;;;;;1809:25:264::0;;1797:2;1782:18;;1663:177;757:31:112::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;798:30;::::0;-1:-1:-1;;;798:30:112;;-1:-1:-1;;;;;2017:32:264;;798:30:112::1;::::0;::::1;1999:51:264::0;742:46:112;;-1:-1:-1;798:8:112::1;::::0;:24:::1;::::0;1972:18:264;;798:30:112::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;838:35:112::1;;::::0;-1:-1:-1;386:1089:112;;-1:-1:-1;386:1089:112;1180:170:148;1316:9;;1292:51;;-1:-1:-1;;;1292:51:148;;1266:7;;1292:13;;:23;;:51;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:148:o;14:290:264:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:264;;214:42;;204:70;;270:1;267;260:12;2061:423;2103:3;2141:5;2135:12;2168:6;2163:3;2156:19;2193:1;2203:162;2217:6;2214:1;2211:13;2203:162;;;2279:4;2335:13;;;2331:22;;2325:29;2307:11;;;2303:20;;2296:59;2232:12;2203:162;;;2207:3;2410:1;2403:4;2394:6;2389:3;2385:16;2381:27;2374:38;2473:4;2466:2;2462:7;2457:2;2449:6;2445:15;2441:29;2436:3;2432:39;2428:50;2421:57;;;2061:423;;;;:::o;2489:485::-;2739:10;2734:3;2730:20;2722:6;2718:33;2707:9;2700:52;2788:2;2783;2772:9;2768:18;2761:30;2681:4;2814:45;2855:2;2844:9;2840:18;2832:6;2814:45;:::i;:::-;2907:9;2899:6;2895:22;2890:2;2879:9;2875:18;2868:50;2935:33;2961:6;2953;2935:33;:::i;:::-;2927:41;2489:485;-1:-1:-1;;;;;;2489:485:264:o;2979:184::-;3049:6;3102:2;3090:9;3081:7;3077:23;3073:32;3070:52;;;3118:1;3115;3108:12;3070:52;-1:-1:-1;3141:16:264;;2979:184;-1:-1:-1;2979:184:264:o;:::-;386:1089:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/Security.sol":{"Security":[{"start":605,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":726,"length":20},{"start":6679,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106103c35760003560e01c80638b3e0471116101ff578063be22fa1e1161011a578063d83205c0116100ad578063e642ad341161007c578063e642ad3414610d71578063eaca386414610dad578063ec11384a14610db5578063f61e60f214610df157600080fd5b8063d83205c014610cb5578063d88597de14610cf1578063dbd55fb314610d2d578063e51a3bab14610d3557600080fd5b8063ca6d5e33116100e9578063ca6d5e3314610bf9578063ccca891114610c35578063d017d35714610c3d578063d15263d314610c7957600080fd5b8063be22fa1e14610b75578063bf40fac114610b7d578063c414d4f914610bb5578063c5ad787914610bbd57600080fd5b80639e5f854211610192578063aacb7f3411610161578063aacb7f3414610ab9578063af895a3b14610ac1578063b70855fb14610afd578063ba9a08d714610b3957600080fd5b80639e5f854214610a6d578063a2fd43c514610a75578063a5be606314610a7d578063a652cb80146103f857600080fd5b806391b9b827116101ce57806391b9b82714610a1457806395789e1c146104785780639863e42014610a1c5780639d18526414610a3157600080fd5b80638b3e04711461098c5780638b40da7d146109c85780638c3e62b6146109d057806391aab3e4146109d857600080fd5b80635e209249116102ef578063697e744c1161028257806379c52aca1161025157806379c52aca1461089c5780637a25c9d3146108d85780637d49df3b146109145780637d95de8e1461095057600080fd5b8063697e744c146107e05780636a0b3f64146107e8578063724348ab14610824578063739baf491461086057600080fd5b806361945bfc116102be57806361945bfc146106f057806362a4c3df1461072c578063638bf74f14610768578063678df18f146107a457600080fd5b80635e209249146106685780635e61dc38146106705780635f39ca2214610678578063608dade9146106b457600080fd5b8063264c135611610367578063423ac8d911610336578063423ac8d91461057857806342ff308b146105b4578063430c6fe6146105f057806359dcf3f61461062c57600080fd5b8063264c1356146104bc5780632a0f4d6b146104f85780632d1da17e14610500578063420ea3601461053c57600080fd5b8063094d3a34116103a3578063094d3a34146104345780630e4943321461043c57806325889b221461047857806326026d181461048057600080fd5b806272e140146103c8578062a9d96e146103e3578063057afbfe146103f8575b600080fd5b6103d0610e2d565b6040519081526020015b60405180910390f35b6103eb610e92565b6040516103da91906116bc565b6103eb6040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b6103d0610eae565b6103eb6040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b6103d0610edf565b6103eb6040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6103eb6040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b6103d0610f10565b6103eb6040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6103eb6040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6103eb6040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6103eb6040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6103eb6040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6103eb6040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b6103d0610f41565b6103eb610f72565b6103eb6040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6103eb6040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6103eb6040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6103eb6040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6103eb6040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6103eb6040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b6103eb610f8e565b6103eb6040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b6103eb6040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6103eb6040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6103eb6040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6103eb6040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b6103eb6040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6103eb6040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6103eb6040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b6103d0610faa565b6103d0610fdb565b6103eb6040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b6103d061100c565b610a2f610a2a3660046117b2565b61103d565b005b6103eb6040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b6103eb6113d1565b6103eb6113ed565b6103eb6040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b6103eb611409565b6103eb6040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6103eb6040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6103eb6040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b6103eb611425565b610b90610b8b36600461184a565b611441565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016103da565b6103eb6114ff565b6103eb6040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6103eb6040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b6103d061151b565b6103eb6040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6103eb6040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6103eb6040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6103eb6040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b6103d061154c565b6103eb6040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6103eb6040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b6103eb61157d565b6103eb6040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6103eb6040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b604051806060016040528060248152602001611b2a6024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610e5a565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610e5a565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610e5a565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610e5a565b604051806060016040528060298152602001611ab16029913981565b604051806060016040528060238152602001611a8e6023913981565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610e5a565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610e5a565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610e5a565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016110d3907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080518083037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008285015282519182018690523382840152825180830384018152606090920190925290925060009161116491611599565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156111f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112169190611887565b6112a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6040517fb1d40e5b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063b1d40e5b9061131f908a908a908a908a906004016118a9565b6020604051808303816000875af115801561133e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113629190611887565b6113c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4661696c75726520746f206578656375746520636f6465000000000000000000604482015260640161129e565b50505050505050565b604051806060016040528060258152602001611a206025913981565b604051806060016040528060288152602001611a456028913981565b6040518060600160405280602b8152602001611aff602b913981565b604051806060016040528060218152602001611a6d6021913981565b6040517f383dac0a00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063383dac0a906114b8908590309060040161191d565b602060405180830381865afa1580156114d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f99190611955565b92915050565b604051806060016040528060258152602001611ada6025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610e5a565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610e5a565b6040518060600160405280602481526020016119fc6024913981565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c90611610907f0000000000000000000000000000000000000000000000000000000000000000908790879060040161198b565b602060405180830381865af415801561162d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165191906119e2565b9392505050565b6000815180845260005b8181101561167e57602081850181015186830182015201611662565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006116516020830184611658565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115611719576117196116cf565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561175f5761175f6116cf565b8160405280935085815286868601111561177857600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126117a357600080fd5b611651838335602085016116fe565b600080600080608085870312156117c857600080fd5b843567ffffffffffffffff808211156117e057600080fd5b6117ec88838901611792565b955060208701359450604087013591508082111561180957600080fd5b508501601f8101871361181b57600080fd5b61182a878235602084016116fe565b92505060608501356002811061183f57600080fd5b939692955090935050565b60006020828403121561185c57600080fd5b813567ffffffffffffffff81111561187357600080fd5b61187f84828501611792565b949350505050565b60006020828403121561189957600080fd5b8151801515811461165157600080fd5b6080815260006118bc6080830187611658565b85602084015282810360408401526118d48186611658565b9150506002831061190e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82606083015295945050505050565b6040815260006119306040830185611658565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b60006020828403121561196757600080fd5b815173ffffffffffffffffffffffffffffffffffffffff8116811461165157600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000841681526060602082015260006119c66060830185611658565b82810360408401526119d88185611658565b9695505050505050565b6000602082840312156119f457600080fd5b505191905056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"386:1089:112:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:93:116;;;:::i;:::-;;;160:25:264;;;148:2;133:18;905:93:116;;;;;;;;4313:101:147;;;:::i;:::-;;;;;;;:::i;3382:80::-;;;;;;;;;;;;;;;;;;;;;812:87:116;;;:::i;560:76:147:-;;;;;;;;;;;;;;;;;;;;;1119:106:116;;;:::i;3124:78:147:-;;;;;;;;;;;;;;;;;;;;;3825:74;;;;;;;;;;;;;;;;;;;;;477:107:116;;;:::i;1749:93:147:-;;;;;;;;;;;;;;;;;;;;;1935:72;;;;;;;;;;;;;;;;;;;;;2407:70;;;;;;;;;;;;;;;;;;;;;278:76;;;;;;;;;;;;;;;;;;;;;2700:77;;;;;;;;;;;;;;;;;;;;;1848:81;;;;;;;;;;;;;;;;;;;;;374:97:116;;;:::i;3637:88:147:-;;;:::i;2314:87::-;;;;;;;;;;;;;;;;;;;;;3468:88;;;;;;;;;;;;;;;;;;;;;1068:85;;;;;;;;;;;;;;;;;;;;;1275:75;;;;;;;;;;;;;;;;;;;;;142:62;;;;;;;;;;;;;;;;;;;;;898:83;;;;;;;;;;;;;;;;;;;;;2947:87;;;:::i;3040:78::-;;;;;;;;;;;;;;;;;;;;;3932:58;;;;;;;;;;;;;;;;;;;;;1662:81;;;;;;;;;;;;;;;;;;;;;4138:68;;;;;;;;;;;;;;;;;;;;;2208:71;;;;;;;;;;;;;;;;;;;;;987:75;;;;;;;;;;;;;;;;;;;;;745:66;;;;;;;;;;;;;;;;;;;;;3208:76;;;;;;;;;;;;;;;;;;;;;703:103:116;;;:::i;273:95::-;;;:::i;210:62:147:-;;;;;;;;;;;;;;;;;;;;;176:91:116;;;:::i;919:354:112:-;;;;;;:::i;:::-;;:::i;:::-;;817:75:147;;;;;;;;;;;;;;;;;;;;;3731:88;;;:::i;2585:109::-;;;:::i;3996:60::-;;;;;;;;;;;;;;;;;;;;;1523:105;;;:::i;4616:78::-;;;;;;;;;;;;;;;;;;;;;1189:80;;;;;;;;;;;;;;;;;;;;;2097:72;;;;;;;;;;;;;;;;;;;;;2483:96;;;:::i;1312:161:112:-;;;;;;:::i;:::-;;:::i;:::-;;;3427:42:264;3415:55;;;3397:74;;3385:2;3370:18;1312:161:112;3251:226:264;4478:96:147;;;:::i;4062:70::-;;;;;;;;;;;;;;;;;;;;;360:80;;;;;;;;;;;;;;;;;;;;;590:107:116;;;:::i;2783:70:147:-;;;;;;;;;;;;;;;;;;;;;1452:65;;;;;;;;;;;;;;;;;;;;;642:73;;;;;;;;;;;;;;;;;;;;;3562:69;;;;;;;;;;;;;;;;;;;;;1231:87:116;;;:::i;2859:82:147:-;;;;;;;;;;;;;;;;;;;;;2013:78;;;;;;;;;;;;;;;;;;;;;1356:90;;;:::i;489:65::-;;;;;;;;;;;;;;;;;;;;;4212:69;;;;;;;;;;;;;;;;;;;;;905:93:116;966:29;;3696:11:264;966:29:116;;;3684:24:264;3724:11;;966:29:116;;;;;;;;;;;;;956:40;;;;;;941:57;;;905:93;:::o;4313:101:147:-;;;;;;;;;;;;;;;;;;;:::o;812:87:116:-;870:26;;3960:8:264;870:26:116;;;3948:21:264;3985:11;;870:26:116;3746:256:264;1119:106:116;1185:37;;4221:19:264;1185:37:116;;;4209:32:264;4257:12;;1185:37:116;4007:268:264;477:107:116;545:36;;4494:18:264;545:36:116;;;4482:31:264;4529:12;;545:36:116;4280:267:264;374:97:116;435:33;;4766:15:264;435:33:116;;;4754:28:264;4798:12;;435:33:116;4552:264:264;3637:88:147;;;;;;;;;;;;;;;;;;;:::o;2947:87::-;;;;;;;;;;;;;;;;;;;:::o;703:103:116:-;769:34;;5035:16:264;769:34:116;;;5023:29:264;5068:12;;769:34:116;4821:265:264;273:95:116;335:30;;5305:12:264;335:30:116;;;5293:25:264;5334:12;;335:30:116;5091:261:264;176:91:116;236:28;;5571:10:264;236:28:116;;;5559:23:264;5598:11;;236:28:116;5357:258:264;919:354:112;545:36:116;;4494:18:264;545:36:116;;;4482:31:264;4529:12;;545:36:116;;;;;;;;;;;;535:47;;;;;;520:64;;;642:16:117;678:28;;;;;;5571:10:264;5559:23;;5607:1;5598:11;;5357:258;678:28:117;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;5794:25:264;;;795:10:117;5835:18:264;;;5828:83;777:29:117;;;;;;;;;5767:18:264;;;;777:29:117;;;668:39;;-1:-1:-1;;;742:65:117;;:9;:65::i;:::-;825:38;;;;;;;;160:25:264;;;718:89:117;;-1:-1:-1;825:15:117;:23;;;;;133:18:264;;825:38:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;6406:2:264;817:84:117;;;6388:21:264;6445:2;6425:18;;;6418:30;6484:34;6464:18;;;6457:62;6555:3;6535:18;;;6528:31;6576:19;;817:84:117;;;;;;;;;1151:78:112::1;::::0;;;;:38:::1;:13;:38;::::0;::::1;::::0;:78:::1;::::0;1190:11;;1203:6;;1211:5;;1218:10;;1151:78:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1130:136;;;::::0;::::1;::::0;;7561:2:264;1130:136:112::1;::::0;::::1;7543:21:264::0;7600:2;7580:18;;;7573:30;7639:25;7619:18;;;7612:53;7682:18;;1130:136:112::1;7359:347:264::0;1130:136:112::1;632:287:117::0;;919:354:112;;;;;:::o;3731:88:147:-;;;;;;;;;;;;;;;;;;;:::o;2585:109::-;;;;;;;;;;;;;;;;;;;:::o;1523:105::-;;;;;;;;;;;;;;;;;;;:::o;2483:96::-;;;;;;;;;;;;;;;;;;;:::o;1312:161:112:-;1408:58;;;;;1382:7;;1408:30;:13;:30;;;;:58;;1439:11;;1460:4;;1408:58;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1401:65;1312:161;-1:-1:-1;;1312:161:112:o;4478:96:147:-;;;;;;;;;;;;;;;;;;;:::o;590:107:116:-;658:36;;8588:18:264;658:36:116;;;8576:31:264;8623:12;;658:36:116;8374:267:264;1231:87:116;1289:26;;8860:8:264;1289:26:116;;;8848:21:264;8885:11;;1289:26:116;8646:256:264;1356:90:147;;;;;;;;;;;;;;;;;;;:::o;1180:170:148:-;1292:51;;;;;1266:7;;1292:13;;:23;;:51;;1316:9;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:148:o;196:482:264:-;238:3;276:5;270:12;303:6;298:3;291:19;328:1;338:162;352:6;349:1;346:13;338:162;;;414:4;470:13;;;466:22;;460:29;442:11;;;438:20;;431:59;367:12;338:162;;;342:3;545:1;538:4;529:6;524:3;520:16;516:27;509:38;667:4;597:66;592:2;584:6;580:15;576:88;571:3;567:98;563:109;556:116;;;196:482;;;;:::o;683:220::-;832:2;821:9;814:21;795:4;852:45;893:2;882:9;878:18;870:6;852:45;:::i;908:184::-;960:77;957:1;950:88;1057:4;1054:1;1047:15;1081:4;1078:1;1071:15;1097:691;1162:5;1192:18;1233:2;1225:6;1222:14;1219:40;;;1239:18;;:::i;:::-;1373:2;1367:9;1439:2;1427:15;;1278:66;1423:24;;;1449:2;1419:33;1415:42;1403:55;;;1473:18;;;1493:22;;;1470:46;1467:72;;;1519:18;;:::i;:::-;1559:10;1555:2;1548:22;1588:6;1579:15;;1618:6;1610;1603:22;1658:3;1649:6;1644:3;1640:16;1637:25;1634:45;;;1675:1;1672;1665:12;1634:45;1725:6;1720:3;1713:4;1705:6;1701:17;1688:44;1780:1;1773:4;1764:6;1756;1752:19;1748:30;1741:41;;;;1097:691;;;;;:::o;1793:222::-;1836:5;1889:3;1882:4;1874:6;1870:17;1866:27;1856:55;;1907:1;1904;1897:12;1856:55;1929:80;2005:3;1996:6;1983:20;1976:4;1968:6;1964:17;1929:80;:::i;2020:899::-;2140:6;2148;2156;2164;2217:3;2205:9;2196:7;2192:23;2188:33;2185:53;;;2234:1;2231;2224:12;2185:53;2274:9;2261:23;2303:18;2344:2;2336:6;2333:14;2330:34;;;2360:1;2357;2350:12;2330:34;2383:50;2425:7;2416:6;2405:9;2401:22;2383:50;:::i;:::-;2373:60;;2480:2;2469:9;2465:18;2452:32;2442:42;;2537:2;2526:9;2522:18;2509:32;2493:48;;2566:2;2556:8;2553:16;2550:36;;;2582:1;2579;2572:12;2550:36;-1:-1:-1;2605:24:264;;2660:4;2652:13;;2648:27;-1:-1:-1;2638:55:264;;2689:1;2686;2679:12;2638:55;2712:74;2778:7;2773:2;2760:16;2755:2;2751;2747:11;2712:74;:::i;:::-;2702:84;;;2836:2;2825:9;2821:18;2808:32;2869:1;2862:5;2859:12;2849:40;;2885:1;2882;2875:12;2849:40;2020:899;;;;-1:-1:-1;2020:899:264;;-1:-1:-1;;2020:899:264:o;2924:322::-;2993:6;3046:2;3034:9;3025:7;3021:23;3017:32;3014:52;;;3062:1;3059;3052:12;3014:52;3102:9;3089:23;3135:18;3127:6;3124:30;3121:50;;;3167:1;3164;3157:12;3121:50;3190;3232:7;3223:6;3212:9;3208:22;3190:50;:::i;:::-;3180:60;2924:322;-1:-1:-1;;;;2924:322:264:o;5922:277::-;5989:6;6042:2;6030:9;6021:7;6017:23;6013:32;6010:52;;;6058:1;6055;6048:12;6010:52;6090:9;6084:16;6143:5;6136:13;6129:21;6122:5;6119:32;6109:60;;6165:1;6162;6155:12;6606:748;6870:3;6859:9;6852:22;6833:4;6897:46;6938:3;6927:9;6923:19;6915:6;6897:46;:::i;:::-;6979:6;6974:2;6963:9;6959:18;6952:34;7034:9;7026:6;7022:22;7017:2;7006:9;7002:18;6995:50;7062:33;7088:6;7080;7062:33;:::i;:::-;7054:41;;;7125:1;7117:6;7114:13;7104:201;;7161:77;7158:1;7151:88;7262:4;7259:1;7252:15;7290:4;7287:1;7280:15;7104:201;7341:6;7336:2;7325:9;7321:18;7314:34;6606:748;;;;;;;:::o;7711:340::-;7888:2;7877:9;7870:21;7851:4;7908:45;7949:2;7938:9;7934:18;7926:6;7908:45;:::i;:::-;7900:53;;8001:42;7993:6;7989:55;7984:2;7973:9;7969:18;7962:83;7711:340;;;;;:::o;8056:313::-;8126:6;8179:2;8167:9;8158:7;8154:23;8150:32;8147:52;;;8195:1;8192;8185:12;8147:52;8227:9;8221:16;8277:42;8270:5;8266:54;8259:5;8256:65;8246:93;;8335:1;8332;8325:12;8907:531;9148:66;9140:6;9136:79;9125:9;9118:98;9252:2;9247;9236:9;9232:18;9225:30;9099:4;9278:45;9319:2;9308:9;9304:18;9296:6;9278:45;:::i;:::-;9371:9;9363:6;9359:22;9354:2;9343:9;9339:18;9332:50;9399:33;9425:6;9417;9399:33;:::i;:::-;9391:41;8907:531;-1:-1:-1;;;;;;8907:531:264:o;9443:184::-;9513:6;9566:2;9554:9;9545:7;9541:23;9537:32;9534:52;;;9582:1;9579;9572:12;9534:52;-1:-1:-1;9605:16:264;;9443:184;-1:-1:-1;9443:184:264:o","linkReferences":{"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":5572,"length":20}]}},"immutableReferences":{"67103":[{"start":4836,"length":32},{"start":5249,"length":32}],"71372":[{"start":4502,"length":32}],"71375":[{"start":5604,"length":32}]}},"methodIdentifiers":{"ACL_ADMIN()":"5e209249","ACTION()":"dbd55fb3","ACTION_MANAGER()":"25889b22","ACTION_MANAGER_NAME_ACTIONS()":"739baf49","ACTION_USER_IMPLENTATION_CALLER()":"c414d4f9","ADDRESS_ACTION_MANAGER()":"ba9a08d7","ADDRESS_BLUEPRINT_MANAGER()":"e642ad34","ADDRESS_LENDER_MARKET()":"423ac8d9","ADDRESS_MANAGER_ACCESS_CONTROL()":"5f39ca22","ADDRESS_MODULE_MANAGER()":"420ea360","ADDRESS_MONEY_MARKET_NAME_BLUEPRINT()":"be22fa1e","ADDRESS_NAME_CONCRETE()":"d017d357","ADDRESS_NAME_MASTERVAULT()":"e51a3bab","ADDRESS_NAME_PORTFOLIO()":"430c6fe6","ADDRESS_NAME_STREAMVAULT()":"697e744c","ADDRESS_NAME_TOKEN_ETH()":"8b3e0471","ADDRESS_NAME_TOKEN_USDC()":"6a0b3f64","ADDRESS_NAME_TOKEN_WETH()":"26026d18","ADDRESS_STAKEABLE_C_ASSET_TOKEN()":"608dade9","ADDRESS_TOKEN_CHAIN_PRICEFEED()":"a652cb80","ADDRESS_TOKEN_PRICEFEED()":"057afbfe","ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT()":"a2fd43c5","BLUEPRINT()":"0072e140","BLUEPRINT_MANAGER()":"95789e1c","BLUEPRINT_MANAGER_NAME_BLUEPRINTS()":"2d1da17e","CONCRETE_MANAGER()":"2a0f4d6b","COUNTER_CLAIM_ID()":"a5be6063","COUNTER_LOAN_ID()":"724348ab","COUNTER_PORTFOLIO_ID()":"79c52aca","COUNTER_PROTECTION_ID()":"c5ad7879","COUNTER_RECEIPT_ID()":"f61e60f2","CT_REWARDS_TREASURY()":"5e61dc38","CT_STAKING_CONTRACT()":"264c1356","CT_TOKEN_ADDRESS()":"d88597de","MODULE()":"094d3a34","MODULE_MANAGER()":"8b40da7d","MODULE_MANAGER_NAME_MODULES()":"59dcf3f6","PORTFOLIOID_INDEX_TO_LOANID()":"ca6d5e33","PORTFOLIOID_INDEX_TO_USER()":"42ff308b","PORTFOLIOID_TO_USER()":"91aab3e4","PROTOCOL()":"91b9b827","PROTOCOL_MANAGER()":"ccca8911","RECEIPTID_TO_POSITION()":"d83205c0","RECEIPTID_TO_USER()":"ec11384a","ROLE_NAME_USER_TO_EXIST()":"7a25c9d3","STAKING_DURATION_AND_REWARDS()":"af895a3b","STAKING_RECEIPT_ADDRESS()":"9e5f8542","SUDO_ADMIN()":"8c3e62b6","TOKEN_LENDER_NAME_COLLATERAL_APPROVED()":"00a9d96e","USER_ID_CLAIM()":"d15263d3","USER_ID_PROTECTION()":"62a4c3df","USER_ID_PROTECTIONID()":"b70855fb","USER_ID_PROTECTION_FINANCIAL_TERMS()":"aacb7f34","USER_ID_PROTECTION_UPDATES()":"eaca3864","USER_INDEX_TO_BORROWDATA()":"7d49df3b","USER_INDEX_TO_LOANID()":"7d95de8e","USER_INDEX_TO_LOANINITIALDATA()":"61945bfc","USER_INDEX_TO_LOANSUPPLYDATA()":"678df18f","USER_INDEX_TO_LOANUPDATE()":"9d185264","USER_TO_PORTFOLIOID()":"638bf74f","USER_TO_RECEIPT_INDEX_COUNT()":"0e494332","execute(string,uint256,bytes,uint8)":"9863e420","getAddress(string)":"bf40fac1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"concreteStorage_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"ExecutionFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"txHash\",\"type\":\"bytes32\"}],\"name\":\"ExecutionSuccess\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER_NAME_ACTIONS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_USER_IMPLENTATION_CALLER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_LENDER_MARKET\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MANAGER_ACCESS_CONTROL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_CONCRETE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_MASTERVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_PORTFOLIO\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_STREAMVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_ETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_USDC\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_WETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_STAKEABLE_C_ASSET_TOKEN\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_CHAIN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER_NAME_BLUEPRINTS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONCRETE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_CLAIM_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_LOAN_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PORTFOLIO_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PROTECTION_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_RECEIPT_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_REWARDS_TREASURY\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_STAKING_CONTRACT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_TOKEN_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER_NAME_MODULES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_POSITION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLE_NAME_USER_TO_EXIST\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_DURATION_AND_REWARDS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_RECEIPT_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUDO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_LENDER_NAME_COLLATERAL_APPROVED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_CLAIM\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTIONID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_FINANCIAL_TERMS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_UPDATES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_BORROWDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANINITIALDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANSUPPLYDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANUPDATE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_PORTFOLIOID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_RECEIPT_INDEX_COUNT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"moduleName_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation_\",\"type\":\"uint8\"}],\"name\":\"execute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"moduleName_\",\"type\":\"string\"}],\"name\":\"getAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Joshua Jack\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Protocol Contract\",\"version\":1},\"userdoc\":{\"events\":{\"ExecutionFailure(bytes32)\":{\"notice\":\"Events\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/Protocol.sol\":\"Protocol\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":10000000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/borrow/actions/loan/interfaces/ILoan.sol\":{\"keccak256\":\"0x588972b2db4a46e19d306657aa06e15ed5a8c1a41734a5ef5a438748534d5c11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a19c52bc842873fdb24d87005a2e1d4fac6462188945fa80764402e794e0202\",\"dweb:/ipfs/QmYHKe5iYu7vkDjmv6bkj8zzwHDDZ7NVNKwrAV3SMUyjmt\"]},\"src/borrow/actions/protection/interfaces/IProtection.sol\":{\"keccak256\":\"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d\",\"dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2\"]},\"src/borrow/utils/implementations/interfaces/ILenderBase.sol\":{\"keccak256\":\"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f\",\"dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK\"]},\"src/core/Executor.sol\":{\"keccak256\":\"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f\",\"dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h\"]},\"src/core/ModuleManager.sol\":{\"keccak256\":\"0x4c84ea0ab5956f846303aaf2dd85f7e478b546defc0e4e1f6cc2bdb99d1b8f64\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd9c67111fe481ec3fef26d7db1f587aea435f982f2e7ab5b9e1215668dedf77\",\"dweb:/ipfs/QmPVreq14nNHmDsWPoEUgBoGxX8Eq8qYd79f152EpdrRpr\"]},\"src/core/Protocol.sol\":{\"keccak256\":\"0x73d5cc553966cb49f5719eacfe1acbff5e307ba8ea03728ef6498a2c83bcc28f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01e7fa5a86b4480e53903935c82969b1fadf8e3010f742062af889796377430c\",\"dweb:/ipfs/QmenGsxCdMw4kxbkYxyrpvmK2yscvcBv2TYoCrffoFdQm5\"]},\"src/core/interfaces/IACL.sol\":{\"keccak256\":\"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a\",\"dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo\"]},\"src/core/interfaces/IConcreteStorage.sol\":{\"keccak256\":\"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8\",\"dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF\"]},\"src/core/interfaces/IERC165.sol\":{\"keccak256\":\"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473\",\"dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7\"]},\"src/core/utils/ConcreteRoles.sol\":{\"keccak256\":\"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab\",\"dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72\"]},\"src/core/utils/OnlyRole.sol\":{\"keccak256\":\"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a\",\"dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN\"]},\"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol\":{\"keccak256\":\"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980\",\"dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj\"]},\"src/helpers/Enum.sol\":{\"keccak256\":\"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2\",\"dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh\"]},\"src/helpers/Pointer.sol\":{\"keccak256\":\"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c\",\"dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ\"]},\"src/helpers/StorageHandler.sol\":{\"keccak256\":\"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab\",\"dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa\"]},\"src/libraries/Security.sol\":{\"keccak256\":\"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c\",\"dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY\"]},\"src/libraries/StorageKeyLib.sol\":{\"keccak256\":\"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f\",\"dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"concreteStorage_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true}],"type":"event","name":"ExecutionFailure","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"txHash","type":"bytes32","indexed":true}],"type":"event","name":"ExecutionSuccess","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ACL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_ACTION_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_LENDER_MARKET","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MODULE_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_CONCRETE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_MASTERVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_PORTFOLIO","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_STREAMVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_ETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_USDC","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_WETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONCRETE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_CLAIM_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_LOAN_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PORTFOLIO_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PROTECTION_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_RECEIPT_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_REWARDS_TREASURY","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_STAKING_CONTRACT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_TOKEN_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER_NAME_MODULES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_POSITION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROLE_NAME_USER_TO_EXIST","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_DURATION_AND_REWARDS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_RECEIPT_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SUDO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_CLAIM","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTIONID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_UPDATES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_BORROWDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANUPDATE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_PORTFOLIOID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"moduleName_","type":"string"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"execute"},{"inputs":[{"internalType":"string","name":"moduleName_","type":"string"}],"stateMutability":"view","type":"function","name":"getAddress","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","chainlink/=lib/chainlink/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":10000000},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/core/Protocol.sol":"Protocol"},"evmVersion":"paris","libraries":{}},"sources":{"src/borrow/actions/loan/interfaces/ILoan.sol":{"keccak256":"0x588972b2db4a46e19d306657aa06e15ed5a8c1a41734a5ef5a438748534d5c11","urls":["bzz-raw://9a19c52bc842873fdb24d87005a2e1d4fac6462188945fa80764402e794e0202","dweb:/ipfs/QmYHKe5iYu7vkDjmv6bkj8zzwHDDZ7NVNKwrAV3SMUyjmt"],"license":"MIT"},"src/borrow/actions/protection/interfaces/IProtection.sol":{"keccak256":"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935","urls":["bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d","dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2"],"license":"MIT"},"src/borrow/utils/implementations/interfaces/ILenderBase.sol":{"keccak256":"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7","urls":["bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f","dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK"],"license":"MIT"},"src/core/Executor.sol":{"keccak256":"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e","urls":["bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f","dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h"],"license":"MIT"},"src/core/ModuleManager.sol":{"keccak256":"0x4c84ea0ab5956f846303aaf2dd85f7e478b546defc0e4e1f6cc2bdb99d1b8f64","urls":["bzz-raw://cd9c67111fe481ec3fef26d7db1f587aea435f982f2e7ab5b9e1215668dedf77","dweb:/ipfs/QmPVreq14nNHmDsWPoEUgBoGxX8Eq8qYd79f152EpdrRpr"],"license":"MIT"},"src/core/Protocol.sol":{"keccak256":"0x73d5cc553966cb49f5719eacfe1acbff5e307ba8ea03728ef6498a2c83bcc28f","urls":["bzz-raw://01e7fa5a86b4480e53903935c82969b1fadf8e3010f742062af889796377430c","dweb:/ipfs/QmenGsxCdMw4kxbkYxyrpvmK2yscvcBv2TYoCrffoFdQm5"],"license":"MIT"},"src/core/interfaces/IACL.sol":{"keccak256":"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5","urls":["bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a","dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo"],"license":"MIT"},"src/core/interfaces/IConcreteStorage.sol":{"keccak256":"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9","urls":["bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8","dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF"],"license":"MIT"},"src/core/interfaces/IERC165.sol":{"keccak256":"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10","urls":["bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473","dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7"],"license":"MIT"},"src/core/utils/ConcreteRoles.sol":{"keccak256":"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e","urls":["bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab","dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72"],"license":"MIT"},"src/core/utils/OnlyRole.sol":{"keccak256":"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11","urls":["bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a","dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN"],"license":"MIT"},"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol":{"keccak256":"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f","urls":["bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980","dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj"],"license":"MIT"},"src/helpers/Enum.sol":{"keccak256":"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559","urls":["bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2","dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh"],"license":"MIT"},"src/helpers/Pointer.sol":{"keccak256":"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a","urls":["bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c","dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ"],"license":"MIT"},"src/helpers/StorageHandler.sol":{"keccak256":"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51","urls":["bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab","dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa"],"license":"MIT"},"src/libraries/Security.sol":{"keccak256":"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b","urls":["bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c","dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY"],"license":"MIT"},"src/libraries/StorageKeyLib.sol":{"keccak256":"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7","urls":["bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f","dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/core/Protocol.sol","id":67187,"exportedSymbols":{"Enum":[71206],"ModuleManager":[67076],"OnlyRole":[67642],"Protocol":[67186],"Security":[75503],"StorageHandler":[71435]},"nodeType":"SourceUnit","src":"31:1445:112","nodes":[{"id":67078,"nodeType":"PragmaDirective","src":"31:23:112","nodes":[],"literals":["solidity","0.8",".20"]},{"id":67080,"nodeType":"ImportDirective","src":"56:58:112","nodes":[],"absolutePath":"src/core/ModuleManager.sol","file":"../core/ModuleManager.sol","nameLocation":"-1:-1:-1","scope":67187,"sourceUnit":67077,"symbolAliases":[{"foreign":{"id":67079,"name":"ModuleManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67076,"src":"65:13:112","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67082,"nodeType":"ImportDirective","src":"115:43:112","nodes":[],"absolutePath":"src/helpers/Enum.sol","file":"../helpers/Enum.sol","nameLocation":"-1:-1:-1","scope":67187,"sourceUnit":71207,"symbolAliases":[{"foreign":{"id":67081,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71206,"src":"124:4:112","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67084,"nodeType":"ImportDirective","src":"159:63:112","nodes":[],"absolutePath":"src/helpers/StorageHandler.sol","file":"../helpers/StorageHandler.sol","nameLocation":"-1:-1:-1","scope":67187,"sourceUnit":71436,"symbolAliases":[{"foreign":{"id":67083,"name":"StorageHandler","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71435,"src":"168:14:112","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67086,"nodeType":"ImportDirective","src":"223:48:112","nodes":[],"absolutePath":"src/core/utils/OnlyRole.sol","file":"./utils/OnlyRole.sol","nameLocation":"-1:-1:-1","scope":67187,"sourceUnit":67643,"symbolAliases":[{"foreign":{"id":67085,"name":"OnlyRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67642,"src":"232:8:112","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67088,"nodeType":"ImportDirective","src":"272:53:112","nodes":[],"absolutePath":"src/libraries/Security.sol","file":"../libraries/Security.sol","nameLocation":"-1:-1:-1","scope":67187,"sourceUnit":75504,"symbolAliases":[{"foreign":{"id":67087,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75503,"src":"281:8:112","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":67186,"nodeType":"ContractDefinition","src":"386:1089:112","nodes":[{"id":67096,"nodeType":"EventDefinition","src":"444:47:112","nodes":[],"anonymous":false,"documentation":{"id":67092,"nodeType":"StructuredDocumentation","src":"422:17:112","text":"@notice Events"},"eventSelector":"dbe42d02a4e07d7eeff2874efe172540c93b297d206f6d691c9782a257323e32","name":"ExecutionFailure","nameLocation":"450:16:112","parameters":{"id":67095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67094,"indexed":true,"mutability":"mutable","name":"txHash","nameLocation":"483:6:112","nodeType":"VariableDeclaration","scope":67096,"src":"467:22:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67093,"name":"bytes32","nodeType":"ElementaryTypeName","src":"467:7:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"466:24:112"}},{"id":67100,"nodeType":"EventDefinition","src":"496:47:112","nodes":[],"anonymous":false,"eventSelector":"dc29884a71d2bb98d3c53dc09718be05c7bfd142b7773a5c5cf2517629290ac0","name":"ExecutionSuccess","nameLocation":"502:16:112","parameters":{"id":67099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67098,"indexed":true,"mutability":"mutable","name":"txHash","nameLocation":"535:6:112","nodeType":"VariableDeclaration","scope":67100,"src":"519:22:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"519:7:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"518:24:112"}},{"id":67103,"nodeType":"VariableDeclaration","src":"549:37:112","nodes":[],"constant":false,"mutability":"immutable","name":"moduleManager","nameLocation":"573:13:112","scope":67186,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ModuleManager_$67076","typeString":"contract ModuleManager"},"typeName":{"id":67102,"nodeType":"UserDefinedTypeName","pathNode":{"id":67101,"name":"ModuleManager","nameLocations":["549:13:112"],"nodeType":"IdentifierPath","referencedDeclaration":67076,"src":"549:13:112"},"referencedDeclaration":67076,"src":"549:13:112","typeDescriptions":{"typeIdentifier":"t_contract$_ModuleManager_$67076","typeString":"contract ModuleManager"}},"visibility":"internal"},{"id":67141,"nodeType":"FunctionDefinition","src":"593:287:112","nodes":[],"body":{"id":67140,"nodeType":"Block","src":"658:222:112","nodes":[],"statements":[{"assignments":[67112],"declarations":[{"constant":false,"id":67112,"mutability":"mutable","name":"key","nameLocation":"676:3:112","nodeType":"VariableDeclaration","scope":67140,"src":"668:11:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":67111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"668:7:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":67120,"initialValue":{"arguments":[{"id":67114,"name":"ADDRESS_MODULE_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71274,"src":"692:22:112","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":67117,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"727:3:112","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":67115,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"716:3:112","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":67116,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"720:6:112","memberName":"encode","nodeType":"MemberAccess","src":"716:10:112","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":67118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"716:15:112","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":67113,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71434,"src":"682:9:112","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":67119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"682:50:112","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"668:64:112"},{"assignments":[67122],"declarations":[{"constant":false,"id":67122,"mutability":"mutable","name":"addr","nameLocation":"750:4:112","nodeType":"VariableDeclaration","scope":67140,"src":"742:12:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67121,"name":"address","nodeType":"ElementaryTypeName","src":"742:7:112","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":67127,"initialValue":{"arguments":[{"id":67125,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67112,"src":"784:3:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":67123,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71372,"src":"757:15:112","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67399","typeString":"contract IConcreteStorage"}},"id":67124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"773:10:112","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67295,"src":"757:26:112","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":67126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"757:31:112","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"742:46:112"},{"expression":{"arguments":[{"id":67131,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67122,"src":"823:4:112","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":67128,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75503,"src":"798:8:112","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75503_$","typeString":"type(library Security)"}},"id":67130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"807:15:112","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75395,"src":"798:24:112","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":67132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"798:30:112","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67133,"nodeType":"ExpressionStatement","src":"798:30:112"},{"expression":{"id":67138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":67134,"name":"moduleManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67103,"src":"838:13:112","typeDescriptions":{"typeIdentifier":"t_contract$_ModuleManager_$67076","typeString":"contract ModuleManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":67136,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67122,"src":"868:4:112","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":67135,"name":"ModuleManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67076,"src":"854:13:112","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ModuleManager_$67076_$","typeString":"type(contract ModuleManager)"}},"id":67137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"854:19:112","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ModuleManager_$67076","typeString":"contract ModuleManager"}},"src":"838:35:112","typeDescriptions":{"typeIdentifier":"t_contract$_ModuleManager_$67076","typeString":"contract ModuleManager"}},"id":67139,"nodeType":"ExpressionStatement","src":"838:35:112"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":67108,"name":"concreteStorage_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67105,"src":"640:16:112","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":67109,"kind":"baseConstructorSpecifier","modifierName":{"id":67107,"name":"OnlyRole","nameLocations":["631:8:112"],"nodeType":"IdentifierPath","referencedDeclaration":67642,"src":"631:8:112"},"nodeType":"ModifierInvocation","src":"631:26:112"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":67106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67105,"mutability":"mutable","name":"concreteStorage_","nameLocation":"613:16:112","nodeType":"VariableDeclaration","scope":67141,"src":"605:24:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67104,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:112","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"604:26:112"},"returnParameters":{"id":67110,"nodeType":"ParameterList","parameters":[],"src":"658:0:112"},"scope":67186,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":67168,"nodeType":"FunctionDefinition","src":"919:354:112","nodes":[],"body":{"id":67167,"nodeType":"Block","src":"1120:153:112","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":67159,"name":"moduleName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67143,"src":"1190:11:112","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":67160,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67145,"src":"1203:6:112","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":67161,"name":"data_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67147,"src":"1211:5:112","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":67162,"name":"operation_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67150,"src":"1218:10:112","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71205","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71205","typeString":"enum Enum.Operation"}],"expression":{"id":67157,"name":"moduleManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67103,"src":"1151:13:112","typeDescriptions":{"typeIdentifier":"t_contract$_ModuleManager_$67076","typeString":"contract ModuleManager"}},"id":67158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1165:24:112","memberName":"executeModuleTransaction","nodeType":"MemberAccess","referencedDeclaration":67008,"src":"1151:38:112","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71205_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) external returns (bool)"}},"id":67163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:78:112","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4661696c75726520746f206578656375746520636f6465","id":67164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1231:25:112","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1219c3be156cf90a2765df02cfa11684efbc8e7128512f2dc50a63aed65974b","typeString":"literal_string \"Failure to execute code\""},"value":"Failure to execute code"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1219c3be156cf90a2765df02cfa11684efbc8e7128512f2dc50a63aed65974b","typeString":"literal_string \"Failure to execute code\""}],"id":67156,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1130:7:112","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":67165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1130:136:112","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":67166,"nodeType":"ExpressionStatement","src":"1130:136:112"}]},"functionSelector":"9863e420","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":67153,"name":"CONCRETE_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67470,"src":"1098:16:112","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":67154,"kind":"modifierInvocation","modifierName":{"id":67152,"name":"onlyRole","nameLocations":["1089:8:112"],"nodeType":"IdentifierPath","referencedDeclaration":67641,"src":"1089:8:112"},"nodeType":"ModifierInvocation","src":"1089:26:112"}],"name":"execute","nameLocation":"928:7:112","parameters":{"id":67151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67143,"mutability":"mutable","name":"moduleName_","nameLocation":"959:11:112","nodeType":"VariableDeclaration","scope":67168,"src":"945:25:112","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":67142,"name":"string","nodeType":"ElementaryTypeName","src":"945:6:112","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":67145,"mutability":"mutable","name":"value_","nameLocation":"988:6:112","nodeType":"VariableDeclaration","scope":67168,"src":"980:14:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":67144,"name":"uint256","nodeType":"ElementaryTypeName","src":"980:7:112","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":67147,"mutability":"mutable","name":"data_","nameLocation":"1017:5:112","nodeType":"VariableDeclaration","scope":67168,"src":"1004:18:112","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":67146,"name":"bytes","nodeType":"ElementaryTypeName","src":"1004:5:112","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":67150,"mutability":"mutable","name":"operation_","nameLocation":"1047:10:112","nodeType":"VariableDeclaration","scope":67168,"src":"1032:25:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71205","typeString":"enum Enum.Operation"},"typeName":{"id":67149,"nodeType":"UserDefinedTypeName","pathNode":{"id":67148,"name":"Enum.Operation","nameLocations":["1032:4:112","1037:9:112"],"nodeType":"IdentifierPath","referencedDeclaration":71205,"src":"1032:14:112"},"referencedDeclaration":71205,"src":"1032:14:112","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71205","typeString":"enum Enum.Operation"}},"visibility":"internal"}],"src":"935:128:112"},"returnParameters":{"id":67155,"nodeType":"ParameterList","parameters":[],"src":"1120:0:112"},"scope":67186,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":67185,"nodeType":"FunctionDefinition","src":"1312:161:112","nodes":[],"body":{"id":67184,"nodeType":"Block","src":"1391:82:112","nodes":[],"statements":[{"expression":{"arguments":[{"id":67177,"name":"moduleName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67170,"src":"1439:11:112","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":67180,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1460:4:112","typeDescriptions":{"typeIdentifier":"t_contract$_Protocol_$67186","typeString":"contract Protocol"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Protocol_$67186","typeString":"contract Protocol"}],"id":67179,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1452:7:112","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":67178,"name":"address","nodeType":"ElementaryTypeName","src":"1452:7:112","typeDescriptions":{}}},"id":67181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1452:13:112","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":67175,"name":"moduleManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67103,"src":"1408:13:112","typeDescriptions":{"typeIdentifier":"t_contract$_ModuleManager_$67076","typeString":"contract ModuleManager"}},"id":67176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1422:16:112","memberName":"getModuleAddress","nodeType":"MemberAccess","referencedDeclaration":67075,"src":"1408:30:112","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (string memory,address) view external returns (address)"}},"id":67182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1408:58:112","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":67174,"id":67183,"nodeType":"Return","src":"1401:65:112"}]},"functionSelector":"bf40fac1","implemented":true,"kind":"function","modifiers":[],"name":"getAddress","nameLocation":"1321:10:112","parameters":{"id":67171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67170,"mutability":"mutable","name":"moduleName_","nameLocation":"1346:11:112","nodeType":"VariableDeclaration","scope":67185,"src":"1332:25:112","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":67169,"name":"string","nodeType":"ElementaryTypeName","src":"1332:6:112","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1331:27:112"},"returnParameters":{"id":67174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":67173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":67185,"src":"1382:7:112","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67172,"name":"address","nodeType":"ElementaryTypeName","src":"1382:7:112","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1381:9:112"},"scope":67186,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":67090,"name":"OnlyRole","nameLocations":["407:8:112"],"nodeType":"IdentifierPath","referencedDeclaration":67642,"src":"407:8:112"},"id":67091,"nodeType":"InheritanceSpecifier","src":"407:8:112"}],"canonicalName":"Protocol","contractDependencies":[],"contractKind":"contract","documentation":{"id":67089,"nodeType":"StructuredDocumentation","src":"326:58:112","text":" @title Protocol Contract\n @author Joshua Jack"},"fullyImplemented":true,"linearizedBaseContracts":[67186,67642,67569,71362,71435],"name":"Protocol","nameLocation":"395:8:112","scope":67187,"usedErrors":[],"usedEvents":[67096,67100]}],"license":"MIT"},"id":112}
Borrow Modules
Active Modules
Lender Module
Loan Brokerage Module
Loan Management Module
Borrow Blueprints
Active Blueprints
Address
ABI
Loan Blueprint
0xACAa187ffeceFF08ad7E167d03aE66eF7edf922d
{"abi":[{"type":"constructor","inputs":[{"name":"concreteStorage_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ACL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_LENDER_MARKET","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_CONCRETE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_MASTERVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_PORTFOLIO","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_STREAMVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_ETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_USDC","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_WETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CONCRETE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_CLAIM_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_LOAN_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PORTFOLIO_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PROTECTION_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_RECEIPT_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_REWARDS_TREASURY","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_STAKING_CONTRACT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_TOKEN_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"MODULE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER_NAME_MODULES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_POSITION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ROLE_NAME_USER_TO_EXIST","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_DURATION_AND_REWARDS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_RECEIPT_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"SUDO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_CLAIM","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTIONID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_UPDATES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_BORROWDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANUPDATE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_PORTFOLIOID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"executeActionTransaction","inputs":[{"name":"actionName_","type":"string","internalType":"string"},{"name":"value_","type":"uint256","internalType":"uint256"},{"name":"data_","type":"bytes","internalType":"bytes"},{"name":"operation_","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getActionAddress","inputs":[{"name":"actionName_","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mintLoanToken","inputs":[{"name":"loanInfo","type":"bytes","internalType":"bytes"},{"name":"to_","type":"address","internalType":"address"},{"name":"uniqueId_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mintPortfolio","inputs":[{"name":"to_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBorrowData","inputs":[{"name":"borrowData_","type":"bytes","internalType":"bytes"},{"name":"loanUpdateInfo_","type":"bytes","internalType":"bytes"},{"name":"user_","type":"address","internalType":"address"},{"name":"loanId_","type":"uint256","internalType":"uint256"},{"name":"loanInfo_","type":"bytes","internalType":"bytes"},{"name":"portfolioId_","type":"uint256","internalType":"uint256"},{"name":"updateField","type":"uint8","internalType":"enum ILoan.UpdateField"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateLoanInfo","inputs":[{"name":"loanInfo_","type":"bytes","internalType":"bytes"},{"name":"user_","type":"address","internalType":"address"},{"name":"loanId_","type":"uint256","internalType":"uint256"},{"name":"updateField","type":"uint8","internalType":"enum ILoan.UpdateField"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BorrowDataSetToLoan","inputs":[{"name":"loanId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"borrowData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LoanInfoUpdated","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"loanId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"loanInfo","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"LoanTokenMinted","inputs":[{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"uniqueId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"loanInfo","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"portfolioId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PortfolioMinted","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"user","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b50604051620042d5380380620042d583398101604081905262000034916200034f565b808080604051602001620000569067141493d513d0d3d360c21b815260080190565b60408051601f1981840301815291905280516020909101206001600160a01b038216620000d65760405162461bcd60e51b815260206004820152602360248201527f4552523a2053746f7261676520616464726573732063616e6e6f74206265207a60448201526265726f60e81b60648201526084015b60405180910390fd5b6001600160e01b031981166200012f5760405162461bcd60e51b815260206004820152601d60248201527f4552523a204e616d6573706163652063616e6e6f74206265207a65726f0000006044820152606401620000cd565b6001600160a01b039091166080526001600160e01b03191660a05250604080518082018252601681527f416464726573732e4d616e616765722e416374696f6e000000000000000000006020808301919091529151600092620001c49291620001ae91016020808252600190820152601f60fa1b604082015260600190565b60408051601f19818403018152919052620002c3565b905060006080516001600160a01b03166321f8a721836040518263ffffffff1660e01b8152600401620001f991815260200190565b602060405180830381865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d91906200034f565b604051632f47185360e11b81526001600160a01b038216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156200029457600080fd5b505af4158015620002a9573d6000803e3d6000fd5b505050506001600160a01b031660c052506200041e915050565b60a051604051631ed43b8b60e21b815260009173__$cb588f1a84862ec6179da8c4e68bd890a8$__91637b50ee2c91620003049187908790600401620003c2565b602060405180830381865af415801562000322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000348919062000404565b9392505050565b6000602082840312156200036257600080fd5b81516001600160a01b03811681146200034857600080fd5b6000815180845260005b81811015620003a25760208185018101518683018201520162000384565b506000602082860101526020601f19601f83011685010191505092915050565b63ffffffff60e01b84168152606060208201526000620003e660608301856200037a565b8281036040840152620003fa81856200037a565b9695505050505050565b6000602082840312156200041757600080fd5b5051919050565b60805160a05160c051613e4f6200048660003960008181611b5801526128c8015260006129910152600081816111c0015281816116cd015281816119a301528181611cfc01528181612097015281816123600152818161240d01526127660152613e4f6000f3fe608060405234801561001057600080fd5b506004361061041f5760003560e01c80638b3e047111610235578063be22fa1e11610135578063d83205c0116100c8578063e642ad3411610097578063ec11384a1161007c578063ec11384a14610e35578063f61e60f214610e71578063ffbf516314610ead57600080fd5b8063e642ad3414610df1578063eaca386414610e2d57600080fd5b8063d83205c014610d35578063d88597de14610d71578063dbd55fb314610dad578063e51a3bab14610db557600080fd5b8063ca6d5e3311610104578063ca6d5e3314610c79578063ccca891114610cb5578063d017d35714610cbd578063d15263d314610cf957600080fd5b8063be22fa1e14610c1a578063bff83fac14610c22578063c414d4f914610c35578063c5ad787914610c3d57600080fd5b80639d185264116101c8578063a652cb8011610197578063af895a3b1161017c578063af895a3b14610b66578063b70855fb14610ba2578063ba9a08d714610bde57600080fd5b8063a652cb8014610454578063aacb7f3414610b5e57600080fd5b80639d18526414610ad65780639e5f854214610b12578063a2fd43c514610b1a578063a5be606314610b2257600080fd5b806390264853116102045780639026485314610a7f57806391aab3e414610a9257806391b9b82714610ace57806395789e1c146104d457600080fd5b80638b3e047114610a105780638b40da7d14610a4c5780638c3e62b614610a545780638d7e9e9414610a5c57600080fd5b80635e61dc38116103405780636a0b3f64116102d357806379c52aca116102a25780637b6a4ce6116102875780637b6a4ce6146109855780637d49df3b146109985780637d95de8e146109d457600080fd5b806379c52aca1461090d5780637a25c9d31461094957600080fd5b80636a0b3f64146108445780637027f12c14610880578063724348ab14610895578063739baf49146108d157600080fd5b806362a4c3df1161030f57806362a4c3df14610788578063638bf74f146107c4578063678df18f14610800578063697e744c1461083c57600080fd5b80635e61dc38146106cc5780635f39ca22146106d4578063608dade91461071057806361945bfc1461074c57600080fd5b80632a0f4d6b116103b857806342ff308b1161038757806342ff308b14610610578063430c6fe61461064c57806359dcf3f6146106885780635e209249146106c457600080fd5b80632a0f4d6b146105545780632d1da17e1461055c578063420ea36014610598578063423ac8d9146105d457600080fd5b80630e494332116103f45780630e4943321461049857806325889b22146104d457806326026d18146104dc578063264c13561461051857600080fd5b806272e14014610424578062a9d96e1461043f578063057afbfe14610454578063094d3a3414610490575b600080fd5b61042c610ee5565b6040519081526020015b60405180910390f35b610447610f4a565b60405161043691906135a9565b6104476040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b61042c610f66565b6104476040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b61042c610f97565b6104476040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6104476040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b61042c610fc8565b6104476040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6104476040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6104476040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6104476040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6104476040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6104476040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b61042c610ff9565b61044761102a565b6104476040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6104476040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6104476040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6104476040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6104476040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6104476040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b610447611046565b6104476040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b61089361088e36600461363e565b611062565b005b6104476040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6104476040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6104476040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6104476040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b61089361099336600461370f565b61157f565b6104476040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6104476040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6104476040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b61042c6117f0565b61042c611821565b610a6f610a6a366004613862565b611852565b6040519015158152602001610436565b610893610a8d3660046138fa565b611bae565b6104476040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b61042c611ea8565b6104476040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b610447611ed9565b610447611ef5565b6104476040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b610447611f11565b6104476040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6104476040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6104476040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b610447611f2d565b610893610c30366004613917565b611f49565b6104476127ee565b6104476040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6104476040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b61042c61280a565b6104476040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6104476040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6104476040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6104476040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b61042c61283b565b6104476040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6104476040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b61044761286c565b6104476040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6104476040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610ec0610ebb366004613974565b612888565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610436565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b604051806060016040528060248152602001613e2b6024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610f12565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610f12565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610f12565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610f12565b604051806060016040528060298152602001613db26029913981565b604051806060016040528060238152602001613d8f6023913981565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016110f8907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e4578697374000000000000000000000000848301528251918201869052339282019290925290925060009161118e916060015b604051602081830303815290604052612946565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa15801561121c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124091906139b1565b6112d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6112db8d8d612a05565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561135457600080fd5b505af4158015611368573d6000803e3d6000fd5b50506040517e38795f000000000000000000000000000000000000000000000000000000008152600481018b905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b1580156113ce57600080fd5b505af41580156113e2573d6000803e3d6000fd5b505050507f1169445ff93c648fe503b5df8fc01428d21d4be61662803c3933f296d918ca27888e8e60405161141993929190613a1c565b60405180910390a160008d8d8b8b8960405160240161143c959493929190613a36565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6e03995b000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f536574426f72726f7744617461416374696f6e00000000000000000000000000908201529091506000906114f690828481611852565b90508061155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a20736574426f72726f7744617461416374696f6e206661696c65640060448201526064016112c8565b61156e8d8d8d8d8a8e8e612b00565b505050505050505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611615907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e4578697374000000000000000000000000848301528251918201869052339282019290925290925060009161169b9160600161117a565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906139b1565b6117d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016112c8565b6117e68888888888612d5f565b5050505050505050565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610f12565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610f12565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016118eb907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e457869737400000000000000000000000084830152825191820186905233928201929092529092506000916119719160600161117a565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156119ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2391906139b1565b611aaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016112c8565b600088308989896001811115611ac757611ac7613a7d565b604051602401611adb959493929190613aac565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b05000000000000000000000000000000000000000000000000000000001790529050611ba17f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613014565b9998505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611c44907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611cca9160600161117a565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7c91906139b1565b611e08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016112c8565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015611e8157600080fd5b505af4158015611e95573d6000803e3d6000fd5b50505050611ea2846130f1565b50505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610f12565b604051806060016040528060258152602001613d216025913981565b604051806060016040528060288152602001613d466028913981565b6040518060600160405280602b8152602001613e00602b913981565b604051806060016040528060218152602001613d6e6021913981565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611fdf907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e457869737400000000000000000000000084830152825191820186905233928201929092529092506000916120659160600161117a565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156120f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211791906139b1565b6121a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016112c8565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561221c57600080fd5b505af4158015612230573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561229657600080fd5b505af41580156122aa573d6000803e3d6000fd5b5050505060006123166040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e496400000000000000000000000000000000008152508760405160200161117a919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa1580156123a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123cb9190613b09565b9050806000036123de576123de876130f1565b6040517fbd02d0f5000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063bd02d0f590602401602060405180830381865afa158015612469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248d9190613b09565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810188905290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b1580156124f257600080fd5b505af4158015612506573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff167fb4310590d6104ad5a71810bd88f57b66bb2d3b59d103901496178a500474d7c0878b8b856040516125569493929190613b22565b60405180910390a260405173ffffffffffffffffffffffffffffffffffffffff8816602482015260448101879052600090606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff741c537000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f4d696e744c6f616e546f6b656e416374696f6e000000000000000000000000009082015290915060009061264490828481611852565b9050806126ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a204d696e744c6f616e546f6b656e416374696f6e206661696c65640060448201526064016112c8565b600061271c6040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e496400000000000000000000000000008152508b8b60405160200161117a92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa1580156127ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d19190613b09565b90506127df8d8d8388613281565b50505050505050505050505050565b604051806060016040528060258152602001613ddb6025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610f12565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610f12565b604051806060016040528060248152602001613cfd6024913981565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb906128ff9085903090600401613b4d565b602060405180830381865afa15801561291c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129409190613b85565b92915050565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c906129bd907f00000000000000000000000000000000000000000000000000000000000000009087908790600401613ba2565b602060405180830381865af41580156129da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fe9190613b09565b9392505050565b600080612a1483850185613bf9565b909250905073ffffffffffffffffffffffffffffffffffffffff8216612a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a20496e76616c6964204465627420546f6b656e20416464726573730060448201526064016112c8565b60008111611ea2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552523a20496e76616c6964204c6f616e20416d6f756e74000000000000000060448201526064016112c8565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015612b7957600080fd5b505af4158015612b8d573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015612bf357600080fd5b505af4158015612c07573d6000803e3d6000fd5b50505050600087878787604051602401612c249493929190613c25565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f34723549000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f5365744c6f616e557064617465416374696f6e0000000000000000000000000090820152909150600090612cde90828481611852565b905080612d47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a205365744c6f616e557064617465416374696f6e206661696c65640060448201526064016112c8565b612d548484898989612d5f565b505050505050505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015612dd857600080fd5b505af4158015612dec573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810185905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015612e5257600080fd5b505af4158015612e66573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f794296e7aeb23e77b488bb43f8492fc4d6e603557c915d75da6ab745ae04e4fd838787604051612eb493929190613a1c565b60405180910390a2600085858585856003811115612ed457612ed4613a7d565b604051602401612ee8959493929190613c62565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7b6a4ce6000000000000000000000000000000000000000000000000000000001790528151808301909252601482527f5570646174654c6f616e496e666f416374696f6e00000000000000000000000090820152909150600090612fa290828481611852565b90508061300b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552523a205570646174654c6f616e496e666f416374696f6e206661696c656460448201526064016112c8565b50505050505050565b60008083600181111561302957613029613a7d565b14806130465750600183600181111561304457613044613a7d565b145b6130ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e2074797065000000000060448201526064016112c8565b60018360018111156130c0576130c0613a7d565b036130d8576000808551602087018986f490506130e8565b600080855160208701888a87f190505b95945050505050565b60405173ffffffffffffffffffffffffffffffffffffffff82169033907feab0d2686ae36dbd9eedeabbba1a2302bcb646ad791b1f6d566951fc593f08d290600090a360405173ffffffffffffffffffffffffffffffffffffffff82166024820152600090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f90264853000000000000000000000000000000000000000000000000000000001790528151808301909252600982527f506f7274666f6c696f00000000000000000000000000000000000000000000009082015290915060009061321390828481611852565b90508061327c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552523a206d696e74506f7274666f6c696f206661696c65640000000000000060448201526064016112c8565b505050565b61328b8484613449565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810183905273__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b1580156132ed57600080fd5b505af4158015613301573d6000803e3d6000fd5b5050505060008285858460405160240161331e9493929190613b22565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0554fd1a000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f536574537570706c7944617461416374696f6e00000000000000000000000000908201529091506000906133d890828481611852565b905080613441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4552523a205365744c6f616e546f6b656e416374696f6e206661696c6564000060448201526064016112c8565b505050505050565b60008061345883850185613cac565b909250905073ffffffffffffffffffffffffffffffffffffffff82166134da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552523a20496e76616c6964205573657220416464726573730000000000000060448201526064016112c8565b6000815111611ea2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552523a20496e76616c6964204c656e6465720000000000000000000000000060448201526064016112c8565b6000815180845260005b8181101561356b5760208185018101518683018201520161354f565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006129fe6020830184613545565b60008083601f8401126135ce57600080fd5b50813567ffffffffffffffff8111156135e657600080fd5b6020830191508360208285010111156135fe57600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461362757600080fd5b50565b80356004811061363957600080fd5b919050565b60008060008060008060008060008060e08b8d03121561365d57600080fd5b8a3567ffffffffffffffff8082111561367557600080fd5b6136818e838f016135bc565b909c509a5060208d013591508082111561369a57600080fd5b6136a68e838f016135bc565b909a50985060408d013591506136bb82613605565b90965060608c0135955060808c013590808211156136d857600080fd5b506136e58d828e016135bc565b90955093505060a08b013591506136fe60c08c0161362a565b90509295989b9194979a5092959850565b60008060008060006080868803121561372757600080fd5b853567ffffffffffffffff81111561373e57600080fd5b61374a888289016135bc565b909650945050602086013561375e81613605565b9250604086013591506137736060870161362a565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff808411156137c9576137c961377f565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561380f5761380f61377f565b8160405280935085815286868601111561382857600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261385357600080fd5b6129fe838335602085016137ae565b6000806000806080858703121561387857600080fd5b843567ffffffffffffffff8082111561389057600080fd5b61389c88838901613842565b95506020870135945060408701359150808211156138b957600080fd5b508501601f810187136138cb57600080fd5b6138da878235602084016137ae565b9250506060850135600281106138ef57600080fd5b939692955090935050565b60006020828403121561390c57600080fd5b81356129fe81613605565b6000806000806060858703121561392d57600080fd5b843567ffffffffffffffff81111561394457600080fd5b613950878288016135bc565b909550935050602085013561396481613605565b9396929550929360400135925050565b60006020828403121561398657600080fd5b813567ffffffffffffffff81111561399d57600080fd5b6139a984828501613842565b949350505050565b6000602082840312156139c357600080fd5b815180151581146129fe57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006130e86040830184866139d3565b608081526000613a4a6080830187896139d3565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260609091015292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60a081526000613abf60a0830188613545565b73ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152613af38186613545565b91505060ff831660808301529695505050505050565b600060208284031215613b1b57600080fd5b5051919050565b848152606060208201526000613b3c6060830185876139d3565b905082604083015295945050505050565b604081526000613b606040830185613545565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b600060208284031215613b9757600080fd5b81516129fe81613605565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152606060208201526000613bdd6060830185613545565b8281036040840152613bef8185613545565b9695505050505050565b60008060408385031215613c0c57600080fd5b8235613c1781613605565b946020939093013593505050565b606081526000613c396060830186886139d3565b73ffffffffffffffffffffffffffffffffffffffff949094166020830152506040015292915050565b608081526000613c766080830187896139d3565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260ff1660609091015292915050565b60008060408385031215613cbf57600080fd5b8235613cca81613605565b9150602083013567ffffffffffffffff811115613ce657600080fd5b613cf285828601613842565b915050925092905056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"376:4991:86:-:0;;;422:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;474:16;536::139;458::108;493:28;;;;;;-1:-1:-1;;;511:23:249;;559:1;550:11;;309:258;493:28:108;;;;-1:-1:-1;;493:28:108;;;;;;;;;483:39;;493:28;483:39;;;;-1:-1:-1;;;;;897:29:138;;889:77;;;;-1:-1:-1;;;889:77:138;;774:2:249;889:77:138;;;756:21:249;813:2;793:18;;;786:30;852:34;832:18;;;825:62;-1:-1:-1;;;903:18:249;;;896:33;946:19;;889:77:138;;;;;;;;;-1:-1:-1;;;;;;984:23:138;;976:65;;;;-1:-1:-1;;;976:65:138;;1178:2:249;976:65:138;;;1160:21:249;1217:2;1197:18;;;1190:30;1256:31;1236:18;;;1229:59;1305:18;;976:65:138;:353:249;:65:138;-1:-1:-1;;;;;1051:51:138;;;;;-1:-1:-1;;;;;;1112:22:138;;;-1:-1:-1;588:22:139::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;;612:15;;564:11:::1;::::0;578:50:::1;::::0;588:22;612:15:::1;::::0;::::1;1536:2:249::0;1518:21;;;1575:1;1555:18;;;1548:29;-1:-1:-1;;;1608:2:249;1593:18;;1586:31;1649:2;1634:18;;1334:324;612:15:139::1;;::::0;;-1:-1:-1;;612:15:139;;::::1;::::0;;;;;;578:9:::1;:50::i;:::-;564:64;;638:12;653:15;;-1:-1:-1::0;;;;;653:26:139::1;;680:3;653:31;;;;;;;;;;;;;1809:25:249::0;;1797:2;1782:18;;1663:177;653:31:139::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:30;::::0;-1:-1:-1;;;694:30:139;;-1:-1:-1;;;;;2017:32:249;;694:30:139::1;::::0;::::1;1999:51:249::0;638:46:139;;-1:-1:-1;694:8:139::1;::::0;:24:::1;::::0;1972:18:249;;694:30:139::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;734:42:139::1;;::::0;-1:-1:-1;376:4991:86;;-1:-1:-1;;376:4991:86;1180:170:138;1316:9;;1292:51;;-1:-1:-1;;;1292:51:138;;1266:7;;1292:13;;:23;;:51;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:138:o;14:290:249:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:249;;214:42;;204:70;;270:1;267;260:12;2061:423;2103:3;2141:5;2135:12;2168:6;2163:3;2156:19;2193:1;2203:162;2217:6;2214:1;2211:13;2203:162;;;2279:4;2335:13;;;2331:22;;2325:29;2307:11;;;2303:20;;2296:59;2232:12;2203:162;;;2207:3;2410:1;2403:4;2394:6;2389:3;2385:16;2381:27;2374:38;2473:4;2466:2;2462:7;2457:2;2449:6;2445:15;2441:29;2436:3;2432:39;2428:50;2421:57;;;2061:423;;;;:::o;2489:485::-;2739:10;2734:3;2730:20;2722:6;2718:33;2707:9;2700:52;2788:2;2783;2772:9;2768:18;2761:30;2681:4;2814:45;2855:2;2844:9;2840:18;2832:6;2814:45;:::i;:::-;2907:9;2899:6;2895:22;2890:2;2879:9;2875:18;2868:50;2935:33;2961:6;2953;2935:33;:::i;:::-;2927:41;2489:485;-1:-1:-1;;;;;;2489:485:249:o;2979:184::-;3049:6;3102:2;3090:9;3081:7;3077:23;3073:32;3070:52;;;3118:1;3115;3108:12;3070:52;-1:-1:-1;3141:16:249;;2979:184;-1:-1:-1;2979:184:249:o;:::-;376:4991:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/Security.sol":{"Security":[{"start":606,"length":20},{"start":6053,"length":20},{"start":6174,"length":20},{"start":8914,"length":20},{"start":9837,"length":20},{"start":9958,"length":20},{"start":10564,"length":20},{"start":12234,"length":20},{"start":12355,"length":20},{"start":12841,"length":20},{"start":12962,"length":20},{"start":14143,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":728,"length":20},{"start":11767,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061041f5760003560e01c80638b3e047111610235578063be22fa1e11610135578063d83205c0116100c8578063e642ad3411610097578063ec11384a1161007c578063ec11384a14610e35578063f61e60f214610e71578063ffbf516314610ead57600080fd5b8063e642ad3414610df1578063eaca386414610e2d57600080fd5b8063d83205c014610d35578063d88597de14610d71578063dbd55fb314610dad578063e51a3bab14610db557600080fd5b8063ca6d5e3311610104578063ca6d5e3314610c79578063ccca891114610cb5578063d017d35714610cbd578063d15263d314610cf957600080fd5b8063be22fa1e14610c1a578063bff83fac14610c22578063c414d4f914610c35578063c5ad787914610c3d57600080fd5b80639d185264116101c8578063a652cb8011610197578063af895a3b1161017c578063af895a3b14610b66578063b70855fb14610ba2578063ba9a08d714610bde57600080fd5b8063a652cb8014610454578063aacb7f3414610b5e57600080fd5b80639d18526414610ad65780639e5f854214610b12578063a2fd43c514610b1a578063a5be606314610b2257600080fd5b806390264853116102045780639026485314610a7f57806391aab3e414610a9257806391b9b82714610ace57806395789e1c146104d457600080fd5b80638b3e047114610a105780638b40da7d14610a4c5780638c3e62b614610a545780638d7e9e9414610a5c57600080fd5b80635e61dc38116103405780636a0b3f64116102d357806379c52aca116102a25780637b6a4ce6116102875780637b6a4ce6146109855780637d49df3b146109985780637d95de8e146109d457600080fd5b806379c52aca1461090d5780637a25c9d31461094957600080fd5b80636a0b3f64146108445780637027f12c14610880578063724348ab14610895578063739baf49146108d157600080fd5b806362a4c3df1161030f57806362a4c3df14610788578063638bf74f146107c4578063678df18f14610800578063697e744c1461083c57600080fd5b80635e61dc38146106cc5780635f39ca22146106d4578063608dade91461071057806361945bfc1461074c57600080fd5b80632a0f4d6b116103b857806342ff308b1161038757806342ff308b14610610578063430c6fe61461064c57806359dcf3f6146106885780635e209249146106c457600080fd5b80632a0f4d6b146105545780632d1da17e1461055c578063420ea36014610598578063423ac8d9146105d457600080fd5b80630e494332116103f45780630e4943321461049857806325889b22146104d457806326026d18146104dc578063264c13561461051857600080fd5b806272e14014610424578062a9d96e1461043f578063057afbfe14610454578063094d3a3414610490575b600080fd5b61042c610ee5565b6040519081526020015b60405180910390f35b610447610f4a565b60405161043691906135a9565b6104476040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b61042c610f66565b6104476040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b61042c610f97565b6104476040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6104476040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b61042c610fc8565b6104476040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6104476040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6104476040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6104476040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6104476040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6104476040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b61042c610ff9565b61044761102a565b6104476040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6104476040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6104476040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6104476040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6104476040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6104476040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b610447611046565b6104476040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b61089361088e36600461363e565b611062565b005b6104476040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6104476040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6104476040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6104476040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b61089361099336600461370f565b61157f565b6104476040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6104476040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6104476040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b61042c6117f0565b61042c611821565b610a6f610a6a366004613862565b611852565b6040519015158152602001610436565b610893610a8d3660046138fa565b611bae565b6104476040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b61042c611ea8565b6104476040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b610447611ed9565b610447611ef5565b6104476040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b610447611f11565b6104476040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6104476040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6104476040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b610447611f2d565b610893610c30366004613917565b611f49565b6104476127ee565b6104476040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6104476040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b61042c61280a565b6104476040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6104476040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6104476040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6104476040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b61042c61283b565b6104476040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6104476040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b61044761286c565b6104476040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6104476040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610ec0610ebb366004613974565b612888565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610436565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b604051806060016040528060248152602001613e2b6024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610f12565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610f12565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610f12565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610f12565b604051806060016040528060298152602001613db26029913981565b604051806060016040528060238152602001613d8f6023913981565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016110f8907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e4578697374000000000000000000000000848301528251918201869052339282019290925290925060009161118e916060015b604051602081830303815290604052612946565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa15801561121c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061124091906139b1565b6112d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6112db8d8d612a05565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a16600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561135457600080fd5b505af4158015611368573d6000803e3d6000fd5b50506040517e38795f000000000000000000000000000000000000000000000000000000008152600481018b905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b1580156113ce57600080fd5b505af41580156113e2573d6000803e3d6000fd5b505050507f1169445ff93c648fe503b5df8fc01428d21d4be61662803c3933f296d918ca27888e8e60405161141993929190613a1c565b60405180910390a160008d8d8b8b8960405160240161143c959493929190613a36565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f6e03995b000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f536574426f72726f7744617461416374696f6e00000000000000000000000000908201529091506000906114f690828481611852565b90508061155f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a20736574426f72726f7744617461416374696f6e206661696c65640060448201526064016112c8565b61156e8d8d8d8d8a8e8e612b00565b505050505050505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611615907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e4578697374000000000000000000000000848301528251918201869052339282019290925290925060009161169b9160600161117a565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d91906139b1565b6117d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016112c8565b6117e68888888888612d5f565b5050505050505050565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610f12565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610f12565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016118eb907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e457869737400000000000000000000000084830152825191820186905233928201929092529092506000916119719160600161117a565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156119ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2391906139b1565b611aaf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016112c8565b600088308989896001811115611ac757611ac7613a7d565b604051602401611adb959493929190613aac565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b05000000000000000000000000000000000000000000000000000000001790529050611ba17f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613014565b9998505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611c44907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611cca9160600161117a565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611d58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7c91906139b1565b611e08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016112c8565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015611e8157600080fd5b505af4158015611e95573d6000803e3d6000fd5b50505050611ea2846130f1565b50505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610f12565b604051806060016040528060258152602001613d216025913981565b604051806060016040528060288152602001613d466028913981565b6040518060600160405280602b8152602001613e00602b913981565b604051806060016040528060218152602001613d6e6021913981565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611fdf907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e457869737400000000000000000000000084830152825191820186905233928201929092529092506000916120659160600161117a565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156120f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061211791906139b1565b6121a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084016112c8565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561221c57600080fd5b505af4158015612230573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561229657600080fd5b505af41580156122aa573d6000803e3d6000fd5b5050505060006123166040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e496400000000000000000000000000000000008152508760405160200161117a919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa1580156123a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123cb9190613b09565b9050806000036123de576123de876130f1565b6040517fbd02d0f5000000000000000000000000000000000000000000000000000000008152600481018390527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063bd02d0f590602401602060405180830381865afa158015612469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248d9190613b09565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810188905290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b1580156124f257600080fd5b505af4158015612506573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff167fb4310590d6104ad5a71810bd88f57b66bb2d3b59d103901496178a500474d7c0878b8b856040516125569493929190613b22565b60405180910390a260405173ffffffffffffffffffffffffffffffffffffffff8816602482015260448101879052600090606401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ff741c537000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f4d696e744c6f616e546f6b656e416374696f6e000000000000000000000000009082015290915060009061264490828481611852565b9050806126ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a204d696e744c6f616e546f6b656e416374696f6e206661696c65640060448201526064016112c8565b600061271c6040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e496400000000000000000000000000008152508b8b60405160200161117a92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa1580156127ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d19190613b09565b90506127df8d8d8388613281565b50505050505050505050505050565b604051806060016040528060258152602001613ddb6025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610f12565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610f12565b604051806060016040528060248152602001613cfd6024913981565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb906128ff9085903090600401613b4d565b602060405180830381865afa15801561291c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129409190613b85565b92915050565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c906129bd907f00000000000000000000000000000000000000000000000000000000000000009087908790600401613ba2565b602060405180830381865af41580156129da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129fe9190613b09565b9392505050565b600080612a1483850185613bf9565b909250905073ffffffffffffffffffffffffffffffffffffffff8216612a96576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a20496e76616c6964204465627420546f6b656e20416464726573730060448201526064016112c8565b60008111611ea2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552523a20496e76616c6964204c6f616e20416d6f756e74000000000000000060448201526064016112c8565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015612b7957600080fd5b505af4158015612b8d573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015612bf357600080fd5b505af4158015612c07573d6000803e3d6000fd5b50505050600087878787604051602401612c249493929190613c25565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f34723549000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f5365744c6f616e557064617465416374696f6e0000000000000000000000000090820152909150600090612cde90828481611852565b905080612d47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a205365744c6f616e557064617465416374696f6e206661696c65640060448201526064016112c8565b612d548484898989612d5f565b505050505050505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015612dd857600080fd5b505af4158015612dec573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810185905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015612e5257600080fd5b505af4158015612e66573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff167f794296e7aeb23e77b488bb43f8492fc4d6e603557c915d75da6ab745ae04e4fd838787604051612eb493929190613a1c565b60405180910390a2600085858585856003811115612ed457612ed4613a7d565b604051602401612ee8959493929190613c62565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7b6a4ce6000000000000000000000000000000000000000000000000000000001790528151808301909252601482527f5570646174654c6f616e496e666f416374696f6e00000000000000000000000090820152909150600090612fa290828481611852565b90508061300b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552523a205570646174654c6f616e496e666f416374696f6e206661696c656460448201526064016112c8565b50505050505050565b60008083600181111561302957613029613a7d565b14806130465750600183600181111561304457613044613a7d565b145b6130ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e2074797065000000000060448201526064016112c8565b60018360018111156130c0576130c0613a7d565b036130d8576000808551602087018986f490506130e8565b600080855160208701888a87f190505b95945050505050565b60405173ffffffffffffffffffffffffffffffffffffffff82169033907feab0d2686ae36dbd9eedeabbba1a2302bcb646ad791b1f6d566951fc593f08d290600090a360405173ffffffffffffffffffffffffffffffffffffffff82166024820152600090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f90264853000000000000000000000000000000000000000000000000000000001790528151808301909252600982527f506f7274666f6c696f00000000000000000000000000000000000000000000009082015290915060009061321390828481611852565b90508061327c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552523a206d696e74506f7274666f6c696f206661696c65640000000000000060448201526064016112c8565b505050565b61328b8484613449565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810183905273__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b1580156132ed57600080fd5b505af4158015613301573d6000803e3d6000fd5b5050505060008285858460405160240161331e9493929190613b22565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f0554fd1a000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f536574537570706c7944617461416374696f6e00000000000000000000000000908201529091506000906133d890828481611852565b905080613441576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4552523a205365744c6f616e546f6b656e416374696f6e206661696c6564000060448201526064016112c8565b505050505050565b60008061345883850185613cac565b909250905073ffffffffffffffffffffffffffffffffffffffff82166134da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552523a20496e76616c6964205573657220416464726573730000000000000060448201526064016112c8565b6000815111611ea2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552523a20496e76616c6964204c656e6465720000000000000000000000000060448201526064016112c8565b6000815180845260005b8181101561356b5760208185018101518683018201520161354f565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006129fe6020830184613545565b60008083601f8401126135ce57600080fd5b50813567ffffffffffffffff8111156135e657600080fd5b6020830191508360208285010111156135fe57600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff8116811461362757600080fd5b50565b80356004811061363957600080fd5b919050565b60008060008060008060008060008060e08b8d03121561365d57600080fd5b8a3567ffffffffffffffff8082111561367557600080fd5b6136818e838f016135bc565b909c509a5060208d013591508082111561369a57600080fd5b6136a68e838f016135bc565b909a50985060408d013591506136bb82613605565b90965060608c0135955060808c013590808211156136d857600080fd5b506136e58d828e016135bc565b90955093505060a08b013591506136fe60c08c0161362a565b90509295989b9194979a5092959850565b60008060008060006080868803121561372757600080fd5b853567ffffffffffffffff81111561373e57600080fd5b61374a888289016135bc565b909650945050602086013561375e81613605565b9250604086013591506137736060870161362a565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff808411156137c9576137c961377f565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190828211818310171561380f5761380f61377f565b8160405280935085815286868601111561382857600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261385357600080fd5b6129fe838335602085016137ae565b6000806000806080858703121561387857600080fd5b843567ffffffffffffffff8082111561389057600080fd5b61389c88838901613842565b95506020870135945060408701359150808211156138b957600080fd5b508501601f810187136138cb57600080fd5b6138da878235602084016137ae565b9250506060850135600281106138ef57600080fd5b939692955090935050565b60006020828403121561390c57600080fd5b81356129fe81613605565b6000806000806060858703121561392d57600080fd5b843567ffffffffffffffff81111561394457600080fd5b613950878288016135bc565b909550935050602085013561396481613605565b9396929550929360400135925050565b60006020828403121561398657600080fd5b813567ffffffffffffffff81111561399d57600080fd5b6139a984828501613842565b949350505050565b6000602082840312156139c357600080fd5b815180151581146129fe57600080fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006130e86040830184866139d3565b608081526000613a4a6080830187896139d3565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260609091015292915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60a081526000613abf60a0830188613545565b73ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152613af38186613545565b91505060ff831660808301529695505050505050565b600060208284031215613b1b57600080fd5b5051919050565b848152606060208201526000613b3c6060830185876139d3565b905082604083015295945050505050565b604081526000613b606040830185613545565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b600060208284031215613b9757600080fd5b81516129fe81613605565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152606060208201526000613bdd6060830185613545565b8281036040840152613bef8185613545565b9695505050505050565b60008060408385031215613c0c57600080fd5b8235613c1781613605565b946020939093013593505050565b606081526000613c396060830186886139d3565b73ffffffffffffffffffffffffffffffffffffffff949094166020830152506040015292915050565b608081526000613c766080830187896139d3565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260ff1660609091015292915050565b60008060408385031215613cbf57600080fd5b8235613cca81613605565b9150602083013567ffffffffffffffff811115613ce657600080fd5b613cf285828601613842565b915050925092905056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"376:4991:86:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:93:107;;;:::i;:::-;;;160:25:249;;;148:2;133:18;905:93:107;;;;;;;;4313:101:137;;;:::i;:::-;;;;;;;:::i;3382:80::-;;;;;;;;;;;;;;;;;;;;;812:87:107;;;:::i;560:76:137:-;;;;;;;;;;;;;;;;;;;;;1119:106:107;;;:::i;3124:78:137:-;;;;;;;;;;;;;;;;;;;;;3825:74;;;;;;;;;;;;;;;;;;;;;477:107:107;;;:::i;1749:93:137:-;;;;;;;;;;;;;;;;;;;;;1935:72;;;;;;;;;;;;;;;;;;;;;2407:70;;;;;;;;;;;;;;;;;;;;;278:76;;;;;;;;;;;;;;;;;;;;;2700:77;;;;;;;;;;;;;;;;;;;;;1848:81;;;;;;;;;;;;;;;;;;;;;374:97:107;;;:::i;3637:88:137:-;;;:::i;2314:87::-;;;;;;;;;;;;;;;;;;;;;3468:88;;;;;;;;;;;;;;;;;;;;;1068:85;;;;;;;;;;;;;;;;;;;;;1275:75;;;;;;;;;;;;;;;;;;;;;142:62;;;;;;;;;;;;;;;;;;;;;898:83;;;;;;;;;;;;;;;;;;;;;2947:87;;;:::i;3040:78::-;;;;;;;;;;;;;;;;;;;;;2174:965:86;;;;;;:::i;:::-;;:::i;:::-;;3932:58:137;;;;;;;;;;;;;;;;;;;;;1662:81;;;;;;;;;;;;;;;;;;;;;4138:68;;;;;;;;;;;;;;;;;;;;;2208:71;;;;;;;;;;;;;;;;;;;;;4547:280:86;;;;;;:::i;:::-;;:::i;987:75:137:-;;;;;;;;;;;;;;;;;;;;;745:66;;;;;;;;;;;;;;;;;;;;;3208:76;;;;;;;;;;;;;;;;;;;;;703:103:107;;;:::i;273:95::-;;;:::i;1000:637:139:-;;;;;;:::i;:::-;;:::i;:::-;;;5859:14:249;;5852:22;5834:41;;5822:2;5807:18;1000:637:139;5694:187:249;5217:148:86;;;;;;:::i;:::-;;:::i;210:62:137:-;;;;;;;;;;;;;;;;;;;;;176:91:107;;;:::i;817:75:137:-;;;;;;;;;;;;;;;;;;;;;3731:88;;;:::i;2585:109::-;;;:::i;3996:60::-;;;;;;;;;;;;;;;;;;;;;1523:105;;;:::i;4616:78::-;;;;;;;;;;;;;;;;;;;;;1189:80;;;;;;;;;;;;;;;;;;;;;2097:72;;;;;;;;;;;;;;;;;;;;;2483:96;;;:::i;501:1128:86:-;;;;;;:::i;:::-;;:::i;4478:96:137:-;;;:::i;4062:70::-;;;;;;;;;;;;;;;;;;;;;360:80;;;;;;;;;;;;;;;;;;;;;590:107:107;;;:::i;2783:70:137:-;;;;;;;;;;;;;;;;;;;;;1452:65;;;;;;;;;;;;;;;;;;;;;642:73;;;;;;;;;;;;;;;;;;;;;3562:69;;;;;;;;;;;;;;;;;;;;;1231:87:107;;;:::i;2859:82:137:-;;;;;;;;;;;;;;;;;;;;;2013:78;;;;;;;;;;;;;;;;;;;;;1356:90;;;:::i;489:65::-;;;;;;;;;;;;;;;;;;;;;4212:69;;;;;;;;;;;;;;;;;;;;;822:172:139;;;;;;:::i;:::-;;:::i;:::-;;;7258:42:249;7246:55;;;7228:74;;7216:2;7201:18;822:172:139;7082:226:249;905:93:107;966:29;;7527:11:249;966:29:107;;;7515:24:249;7555:11;;966:29:107;;;;;;;;;;;;;956:40;;;;;;941:57;;;905:93;:::o;4313:101:137:-;;;;;;;;;;;;;;;;;;;:::o;812:87:107:-;870:26;;7791:8:249;870:26:107;;;7779:21:249;7816:11;;870:26:107;7577:256:249;1119:106:107;1185:37;;8052:19:249;1185:37:107;;;8040:32:249;8088:12;;1185:37:107;7838:268:249;477:107:107;545:36;;8325:18:249;545:36:107;;;8313:31:249;8360:12;;545:36:107;8111:267:249;374:97:107;435:33;;8597:15:249;435:33:107;;;8585:28:249;8629:12;;435:33:107;8383:264:249;3637:88:137;;;;;;;;;;;;;;;;;;;:::o;2947:87::-;;;;;;;;;;;;;;;;;;;:::o;2174:965:86:-;1073:37:107;;8052:19:249;1073:37:107;;;8040:32:249;8088:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8866:10:249;8854:23;;8902:1;8893:11;;8652:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;9089:25:249;;;795:10:108;9130:18:249;;;9123:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;9062:18:249;;777:29:108;;;;;;;;;;;;;742:9;:65::i;:::-;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9701:2:249;817:84:108;;;9683:21:249;9740:2;9720:18;;;9713:30;9779:34;9759:18;;;9752:62;9850:3;9830:18;;;9823:31;9871:19;;817:84:108;;;;;;;;;2497:51:86::1;2536:11;;2497:38;:51::i;:::-;2558:31;::::0;;;;7258:42:249;7246:55;;2558:31:86::1;::::0;::::1;7228:74:249::0;2558:8:86::1;::::0;:24:::1;::::0;7201:18:249;;2558:31:86::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;2599:30:86::1;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;2599:8:86::1;::::0;-1:-1:-1;2599:21:86::1;::::0;-1:-1:-1;133:18:249;;2599:30:86::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2644:57;2680:7;2689:11;;2644:57;;;;;;;;:::i;:::-;;;;;;;;2711:26;2825:11;;2838:5;2845:7;2854:12;2740:136;;;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;;;;::::0;;2901:86;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;2740:136;;-1:-1:-1;;;2901:86:86::1;::::0;-1:-1:-1;2740:136:86;-1:-1:-1;2901:24:86::1;:86::i;:::-;2886:101;;3005:7;2997:51;;;::::0;::::1;::::0;;11695:2:249;2997:51:86::1;::::0;::::1;11677:21:249::0;11734:2;11714:18;;;11707:30;11773:33;11753:18;;;11746:61;11824:18;;2997:51:86::1;11493:355:249::0;2997:51:86::1;3058:74;3076:15;;3093:5;3100:7;3109:11;3122:9;;3058:17;:74::i;:::-;2487:652;;632:287:108::0;;2174:965:86;;;;;;;;;;;:::o;4547:280::-;1073:37:107;;8052:19:249;1073:37:107;;;8040:32:249;8088:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8866:10:249;8854:23;;8902:1;8893:11;;8652:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;9089:25:249;;;795:10:108;9130:18:249;;;9123:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;9062:18:249;;777:29:108;8915:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9701:2:249;817:84:108;;;9683:21:249;9740:2;9720:18;;;9713:30;9779:34;9759:18;;;9752:62;9850:3;9830:18;;;9823:31;9871:19;;817:84:108;9499:397:249;817:84:108;4765:55:86::1;4781:9;;4792:5;4799:7;4808:11;4765:15;:55::i;:::-;632:287:108::0;;4547:280:86;;;;;;:::o;703:103:107:-;769:34;;12067:16:249;769:34:107;;;12055:29:249;12100:12;;769:34:107;11853:265:249;273:95:107;335:30;;12337:12:249;335:30:107;;;12325:25:249;12366:12;;335:30:107;12123:261:249;1000:637:139;1073:37:107;;8052:19:249;1073:37:107;;;8040:32:249;1230:12:139;;8088::249;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8866:10:249;8854:23;;8902:1;8893:11;;8652:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;9089:25:249;;;795:10:108;9130:18:249;;;9123:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;9062:18:249;;777:29:108;8915:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9701:2:249;817:84:108;;;9683:21:249;9740:2;9720:18;;;9713:30;9779:34;9759:18;;;9752:62;9850:3;9830:18;;;9823:31;9871:19;;817:84:108;9499:397:249;817:84:108;1258:24:139::1;1398:11;1431:4;1450:6;1470:5;1495:10;1489:17;;;;;;;;:::i;:::-;1285:231;;;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;;;::::0;;;-1:-1:-1;1536:94:139::1;1552:20;-1:-1:-1::0;1285:231:139;-1:-1:-1;1612:17:139::1;1536:7;:94::i;:::-;1526:104:::0;1000:637;-1:-1:-1;;;;;;;;;1000:637:139:o;5217:148:86:-;1073:37:107;;8052:19:249;1073:37:107;;;8040:32:249;8088:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8866:10:249;8854:23;;8902:1;8893:11;;8652:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;9089:25:249;;;795:10:108;9130:18:249;;;9123:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;9062:18:249;;777:29:108;8915:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9701:2:249;817:84:108;;;9683:21:249;9740:2;9720:18;;;9713:30;9779:34;9759:18;;;9752:62;9850:3;9830:18;;;9823:31;9871:19;;817:84:108;9499:397:249;817:84:108;5300:29:86::1;::::0;;;;7258:42:249;7246:55;;5300:29:86::1;::::0;::::1;7228:74:249::0;5300:8:86::1;::::0;:24:::1;::::0;7201:18:249;;5300:29:86::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5339:19;5354:3;5339:14;:19::i;:::-;632:287:108::0;;5217:148:86;;:::o;176:91:107:-;236:28;;8866:10:249;236:28:107;;;8854:23:249;8893:11;;236:28:107;8652:258:249;3731:88:137;;;;;;;;;;;;;;;;;;;:::o;2585:109::-;;;;;;;;;;;;;;;;;;;:::o;1523:105::-;;;;;;;;;;;;;;;;;;;:::o;2483:96::-;;;;;;;;;;;;;;;;;;;:::o;501:1128:86:-;1073:37:107;;8052:19:249;1073:37:107;;;8040:32:249;8088:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8866:10:249;8854:23;;8902:1;8893:11;;8652:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;9089:25:249;;;795:10:108;9130:18:249;;;9123:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;9062:18:249;;777:29:108;8915:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9701:2:249;817:84:108;;;9683:21:249;9740:2;9720:18;;;9713:30;9779:34;9759:18;;;9752:62;9850:3;9830:18;;;9823:31;9871:19;;817:84:108;9499:397:249;817:84:108;678:29:86::1;::::0;;;;7258:42:249;7246:55;;678:29:86::1;::::0;::::1;7228:74:249::0;678:8:86::1;::::0;:24:::1;::::0;7201:18:249;;678:29:86::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;717:32:86::1;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;717:8:86::1;::::0;-1:-1:-1;717:21:86::1;::::0;-1:-1:-1;133:18:249;;717:32:86::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;759:22;784:47;794:19;;;;;;;;;;;;;;;;::::0;826:3:::1;815:15;;;;;;;7258:42:249::0;7246:55;;;;7228:74;;7216:2;7201:18;;7082:226;784:47:86::1;863:39;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;759:72:86;;-1:-1:-1;841:19:86::1;::::0;863:23:::1;:15;:23;::::0;::::1;::::0;133:18:249;;863:39:86::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;841:61;;916:11;931:1;916:16:::0;912:41:::1;;934:19;949:3;934:14;:19::i;:::-;977:39;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;977:15:86::1;:23;;::::0;::::1;::::0;133:18:249;;977:39:86::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1026:32;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;963:53:86;;-1:-1:-1;1026:8:86::1;::::0;:21:::1;::::0;133:18:249;;1026:32:86::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1105:3;1073:70;;;1110:9;1121:8;;1131:11;1073:70;;;;;;;;;:::i;:::-;;;;;;;;1177:73;::::0;14020:42:249;14008:55;;1177:73:86::1;::::0;::::1;13990:74:249::0;14080:18;;;14073:34;;;1153:21:86::1;::::0;13963:18:249;;1177:73:86::1;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;;;;::::0;;1275:81;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;1177:73;;-1:-1:-1;;;1275:81:86::1;::::0;-1:-1:-1;1177:73:86;-1:-1:-1;1275:24:86::1;:81::i;:::-;1260:96;;1374:7;1366:51;;;::::0;::::1;::::0;;14320:2:249;1366:51:86::1;::::0;::::1;14302:21:249::0;14359:2;14339:18;;;14332:30;14398:33;14378:18;;;14371:61;14449:18;;1366:51:86::1;14118:355:249::0;1366:51:86::1;1427:15;1445:59;1455:20;;;;;;;;;;;;;;;;::::0;1488:3:::1;1493:9;1477:26;;;;;;;;14020:42:249::0;14008:55;;;;13990:74;;14095:2;14080:18;;14073:34;13978:2;13963:18;;13816:297;1445:59:86::1;1531:32;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;1427:77:86;;-1:-1:-1;1514:14:86::1;::::0;1531:23:::1;:15;:23;::::0;::::1;::::0;133:18:249;;1531:32:86::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1514:49;;1573;1592:8;;1602:6;1610:11;1573:18;:49::i;:::-;668:961;;;;;;632:287:108::0;;501:1128:86;;;;;:::o;4478:96:137:-;;;;;;;;;;;;;;;;;;;:::o;590:107:107:-;658:36;;14692:18:249;658:36:107;;;14680:31:249;14727:12;;658:36:107;14478:267:249;1231:87:107;1289:26;;14964:8:249;1289:26:107;;;14952:21:249;14989:11;;1289:26:107;14750:256:249;1356:90:137;;;;;;;;;;;;;;;;;;;:::o;822:172:139:-;922:65;;;;;896:7;;922:37;:20;:37;;;;:65;;960:11;;981:4;;922:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;915:72;822:172;-1:-1:-1;;822:172:139:o;1180:170:138:-;1292:51;;;;;1266:7;;1292:13;;:23;;:51;;1316:9;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:138:o;6296:313:156:-;6383:17;;6424:38;;;;6435:6;6424:38;:::i;:::-;6382:80;;-1:-1:-1;6382:80:156;-1:-1:-1;6480:25:156;;;6472:69;;;;;;;16867:2:249;6472:69:156;;;16849:21:249;16906:2;16886:18;;;16879:30;16945:33;16925:18;;;16918:61;16996:18;;6472:69:156;16665:355:249;6472:69:156;6572:1;6559:10;:14;6551:51;;;;;;;17227:2:249;6551:51:156;;;17209:21:249;17266:2;17246:18;;;17239:30;17305:26;17285:18;;;17278:54;17349:18;;6551:51:156;17025:348:249;3145:703:86;3371:31;;;;;7258:42:249;7246:55;;3371:31:86;;;7228:74:249;3371:8:86;;:24;;7201:18:249;;3371:31:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3412:30:86;;;;;;;;160:25:249;;;3412:8:86;;-1:-1:-1;3412:21:86;;-1:-1:-1;133:18:249;;3412:30:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3452:31;3566:15;;3583:5;3590:7;3498:100;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;3623:91;;;;;;;;;;;;;;;;3498:100;;-1:-1:-1;;;3623:91:86;;-1:-1:-1;3498:100:86;-1:-1:-1;3623:24:86;:91::i;:::-;3608:106;;3732:7;3724:51;;;;;;;18020:2:249;3724:51:86;;;18002:21:249;18059:2;18039:18;;;18032:30;18098:33;18078:18;;;18071:61;18149:18;;3724:51:86;17818:355:249;3724:51:86;3785:56;3801:9;;3812:5;3819:7;3828:12;3785:15;:56::i;:::-;3361:487;;3145:703;;;;;;;:::o;3854:687::-;4036:31;;;;;7258:42:249;7246:55;;4036:31:86;;;7228:74:249;4036:8:86;;:24;;7201:18:249;;4036:31:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4077:30:86;;;;;;;;160:25:249;;;4077:8:86;;-1:-1:-1;4077:21:86;;-1:-1:-1;133:18:249;;4077:30:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4154:5;4122:58;;;4161:7;4170:9;;4122:58;;;;;;;;:::i;:::-;;;;;;;;4190:27;4304:9;;4315:5;4322:7;4337:11;4331:18;;;;;;;;:::i;:::-;4220:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;4384:88;;;;;;;;;;;;;;;;4220:139;;-1:-1:-1;;;4384:88:86;;-1:-1:-1;4220:139:86;-1:-1:-1;4384:24:86;:88::i;:::-;4369:103;;4490:7;4482:52;;;;;;;18900:2:249;4482:52:86;;;18882:21:249;;;18919:18;;;18912:30;18978:34;18958:18;;;18951:62;19030:18;;4482:52:86;18698:356:249;4482:52:86;4026:515;;3854:687;;;;;:::o;519:822:101:-;708:12;;757:10;:33;;;;;;;;:::i;:::-;;:78;;;-1:-1:-1;808:27:101;794:10;:41;;;;;;;;:::i;:::-;;757:78;736:152;;;;;;;19261:2:249;736:152:101;;;19243:21:249;19300:2;19280:18;;;19273:30;19339:29;19319:18;;;19312:57;19386:18;;736:152:101;19059:351:249;736:152:101;916:27;902:10;:41;;;;;;;;:::i;:::-;;898:437;;1111:1;1108;1100:5;1094:12;1087:4;1080:5;1076:16;1071:3;1063:6;1050:63;1039:74;;898:437;;;1309:1;1306;1298:5;1292:12;1285:4;1278:5;1274:16;1266:6;1261:3;1253:6;1248:63;1237:74;;898:437;519:822;;;;;;;:::o;4833:378:86:-;4893:48;;;;;;4925:10;;4893:48;;;;;4986:54;;7258:42:249;7246:55;;4986:54:86;;;7228:74:249;4951:32:86;;7201:18:249;;4986:54:86;;;;;;;;;;;;;;;;;;;;;;;;;5066:82;;;;;;;;;;;;;;;;4986:54;;-1:-1:-1;;;5066:82:86;;-1:-1:-1;4986:54:86;-1:-1:-1;5066:24:86;:82::i;:::-;5050:98;;5166:8;5158:46;;;;;;;19617:2:249;5158:46:86;;;19599:21:249;19656:2;19636:18;;;19629:30;19695:27;19675:18;;;19668:55;19740:18;;5158:46:86;19415:349:249;5158:46:86;4878:333;;4833:378;:::o;1635:533::-;1746:46;1782:9;;1746:35;:46::i;:::-;1802:30;;;;;;;;160:25:249;;;1802:8:86;;:21;;133:18:249;;1802:30:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1842:31;1952:7;1961:9;;1972:12;1888:97;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2010:91;;;;;;;;;;;;;;;;1888:97;;-1:-1:-1;;;2010:91:86;;-1:-1:-1;1888:97:86;-1:-1:-1;2010:24:86;:91::i;:::-;1995:106;;2119:7;2111:50;;;;;;;19971:2:249;2111:50:86;;;19953:21:249;20010:2;19990:18;;;19983:30;20049:32;20029:18;;;20022:60;20099:18;;2111:50:86;19769:354:249;2111:50:86;1736:432;;1635:533;;;;:::o;5198:319:156:-;5283:19;;5329:38;;;;5340:7;5329:38;:::i;:::-;5282:85;;-1:-1:-1;5282:85:156;-1:-1:-1;5386:27:156;;;5378:65;;;;;;;20800:2:249;5378:65:156;;;20782:21:249;20839:2;20819:18;;;20812:30;20878:27;20858:18;;;20851:55;20923:18;;5378:65:156;20598:349:249;5378:65:156;5485:1;5467:7;5461:21;:25;5453:57;;;;;;;21154:2:249;5453:57:156;;;21136:21:249;21193:2;21173:18;;;21166:30;21232:21;21212:18;;;21205:49;21271:18;;5453:57:156;20952:343:249;196:482;238:3;276:5;270:12;303:6;298:3;291:19;328:1;338:162;352:6;349:1;346:13;338:162;;;414:4;470:13;;;466:22;;460:29;442:11;;;438:20;;431:59;367:12;338:162;;;342:3;545:1;538:4;529:6;524:3;520:16;516:27;509:38;667:4;597:66;592:2;584:6;580:15;576:88;571:3;567:98;563:109;556:116;;;196:482;;;;:::o;683:220::-;832:2;821:9;814:21;795:4;852:45;893:2;882:9;878:18;870:6;852:45;:::i;908:347::-;959:8;969:6;1023:3;1016:4;1008:6;1004:17;1000:27;990:55;;1041:1;1038;1031:12;990:55;-1:-1:-1;1064:20:249;;1107:18;1096:30;;1093:50;;;1139:1;1136;1129:12;1093:50;1176:4;1168:6;1164:17;1152:29;;1228:3;1221:4;1212:6;1204;1200:19;1196:30;1193:39;1190:59;;;1245:1;1242;1235:12;1190:59;908:347;;;;;:::o;1260:154::-;1346:42;1339:5;1335:54;1328:5;1325:65;1315:93;;1404:1;1401;1394:12;1315:93;1260:154;:::o;1419:152::-;1496:20;;1545:1;1535:12;;1525:40;;1561:1;1558;1551:12;1525:40;1419:152;;;:::o;1576:1379::-;1739:6;1747;1755;1763;1771;1779;1787;1795;1803;1811;1864:3;1852:9;1843:7;1839:23;1835:33;1832:53;;;1881:1;1878;1871:12;1832:53;1921:9;1908:23;1950:18;1991:2;1983:6;1980:14;1977:34;;;2007:1;2004;1997:12;1977:34;2046:58;2096:7;2087:6;2076:9;2072:22;2046:58;:::i;:::-;2123:8;;-1:-1:-1;2020:84:249;-1:-1:-1;2211:2:249;2196:18;;2183:32;;-1:-1:-1;2227:16:249;;;2224:36;;;2256:1;2253;2246:12;2224:36;2295:60;2347:7;2336:8;2325:9;2321:24;2295:60;:::i;:::-;2374:8;;-1:-1:-1;2269:86:249;-1:-1:-1;2459:2:249;2444:18;;2431:32;;-1:-1:-1;2472:31:249;2431:32;2472:31;:::i;:::-;2522:5;;-1:-1:-1;2574:2:249;2559:18;;2546:32;;-1:-1:-1;2631:3:249;2616:19;;2603:33;;2648:16;;;2645:36;;;2677:1;2674;2667:12;2645:36;;2716:60;2768:7;2757:8;2746:9;2742:24;2716:60;:::i;:::-;2795:8;;-1:-1:-1;2690:86:249;-1:-1:-1;;2877:3:249;2862:19;;2849:33;;-1:-1:-1;2901:48:249;2944:3;2929:19;;2901:48;:::i;:::-;2891:58;;1576:1379;;;;;;;;;;;;;:::o;2960:713::-;3074:6;3082;3090;3098;3106;3159:3;3147:9;3138:7;3134:23;3130:33;3127:53;;;3176:1;3173;3166:12;3127:53;3216:9;3203:23;3249:18;3241:6;3238:30;3235:50;;;3281:1;3278;3271:12;3235:50;3320:58;3370:7;3361:6;3350:9;3346:22;3320:58;:::i;:::-;3397:8;;-1:-1:-1;3294:84:249;-1:-1:-1;;3482:2:249;3467:18;;3454:32;3495:31;3454:32;3495:31;:::i;:::-;3545:5;-1:-1:-1;3597:2:249;3582:18;;3569:32;;-1:-1:-1;3620:47:249;3663:2;3648:18;;3620:47;:::i;:::-;3610:57;;2960:713;;;;;;;;:::o;3678:184::-;3730:77;3727:1;3720:88;3827:4;3824:1;3817:15;3851:4;3848:1;3841:15;3867:691;3932:5;3962:18;4003:2;3995:6;3992:14;3989:40;;;4009:18;;:::i;:::-;4143:2;4137:9;4209:2;4197:15;;4048:66;4193:24;;;4219:2;4189:33;4185:42;4173:55;;;4243:18;;;4263:22;;;4240:46;4237:72;;;4289:18;;:::i;:::-;4329:10;4325:2;4318:22;4358:6;4349:15;;4388:6;4380;4373:22;4428:3;4419:6;4414:3;4410:16;4407:25;4404:45;;;4445:1;4442;4435:12;4404:45;4495:6;4490:3;4483:4;4475:6;4471:17;4458:44;4550:1;4543:4;4534:6;4526;4522:19;4518:30;4511:41;;;;3867:691;;;;;:::o;4563:222::-;4606:5;4659:3;4652:4;4644:6;4640:17;4636:27;4626:55;;4677:1;4674;4667:12;4626:55;4699:80;4775:3;4766:6;4753:20;4746:4;4738:6;4734:17;4699:80;:::i;4790:899::-;4910:6;4918;4926;4934;4987:3;4975:9;4966:7;4962:23;4958:33;4955:53;;;5004:1;5001;4994:12;4955:53;5044:9;5031:23;5073:18;5114:2;5106:6;5103:14;5100:34;;;5130:1;5127;5120:12;5100:34;5153:50;5195:7;5186:6;5175:9;5171:22;5153:50;:::i;:::-;5143:60;;5250:2;5239:9;5235:18;5222:32;5212:42;;5307:2;5296:9;5292:18;5279:32;5263:48;;5336:2;5326:8;5323:16;5320:36;;;5352:1;5349;5342:12;5320:36;-1:-1:-1;5375:24:249;;5430:4;5422:13;;5418:27;-1:-1:-1;5408:55:249;;5459:1;5456;5449:12;5408:55;5482:74;5548:7;5543:2;5530:16;5525:2;5521;5517:11;5482:74;:::i;:::-;5472:84;;;5606:2;5595:9;5591:18;5578:32;5639:1;5632:5;5629:12;5619:40;;5655:1;5652;5645:12;5619:40;4790:899;;;;-1:-1:-1;4790:899:249;;-1:-1:-1;;4790:899:249:o;5886:247::-;5945:6;5998:2;5986:9;5977:7;5973:23;5969:32;5966:52;;;6014:1;6011;6004:12;5966:52;6053:9;6040:23;6072:31;6097:5;6072:31;:::i;6138:612::-;6226:6;6234;6242;6250;6303:2;6291:9;6282:7;6278:23;6274:32;6271:52;;;6319:1;6316;6309:12;6271:52;6359:9;6346:23;6392:18;6384:6;6381:30;6378:50;;;6424:1;6421;6414:12;6378:50;6463:58;6513:7;6504:6;6493:9;6489:22;6463:58;:::i;:::-;6540:8;;-1:-1:-1;6437:84:249;-1:-1:-1;;6625:2:249;6610:18;;6597:32;6638:31;6597:32;6638:31;:::i;:::-;6138:612;;;;-1:-1:-1;6688:5:249;;6740:2;6725:18;6712:32;;-1:-1:-1;;6138:612:249:o;6755:322::-;6824:6;6877:2;6865:9;6856:7;6852:23;6848:32;6845:52;;;6893:1;6890;6883:12;6845:52;6933:9;6920:23;6966:18;6958:6;6955:30;6952:50;;;6998:1;6995;6988:12;6952:50;7021;7063:7;7054:6;7043:9;7039:22;7021:50;:::i;:::-;7011:60;6755:322;-1:-1:-1;;;;6755:322:249:o;9217:277::-;9284:6;9337:2;9325:9;9316:7;9312:23;9308:32;9305:52;;;9353:1;9350;9343:12;9305:52;9385:9;9379:16;9438:5;9431:13;9424:21;9417:5;9414:32;9404:60;;9460:1;9457;9450:12;10330:325;10418:6;10413:3;10406:19;10470:6;10463:5;10456:4;10451:3;10447:14;10434:43;;10522:1;10515:4;10506:6;10501:3;10497:16;10493:27;10486:38;10388:3;10644:4;10574:66;10569:2;10561:6;10557:15;10553:88;10548:3;10544:98;10540:109;10533:116;;10330:325;;;;:::o;10660:315::-;10845:6;10834:9;10827:25;10888:2;10883;10872:9;10868:18;10861:30;10808:4;10908:61;10965:2;10954:9;10950:18;10942:6;10934;10908:61;:::i;10980:508::-;11221:3;11210:9;11203:22;11184:4;11242:62;11299:3;11288:9;11284:19;11276:6;11268;11242:62;:::i;:::-;11352:42;11340:55;;;;11335:2;11320:18;;11313:83;-1:-1:-1;11427:2:249;11412:18;;11405:34;;;;11470:2;11455:18;;;11448:34;11234:70;10980:508;-1:-1:-1;;10980:508:249:o;12389:184::-;12441:77;12438:1;12431:88;12538:4;12535:1;12528:15;12562:4;12559:1;12552:15;12578:653;12853:3;12842:9;12835:22;12816:4;12880:46;12921:3;12910:9;12906:19;12898:6;12880:46;:::i;:::-;12974:42;12966:6;12962:55;12957:2;12946:9;12942:18;12935:83;13054:6;13049:2;13038:9;13034:18;13027:34;13109:9;13101:6;13097:22;13092:2;13081:9;13077:18;13070:50;13137:33;13163:6;13155;13137:33;:::i;:::-;13129:41;;;13219:4;13211:6;13207:17;13201:3;13190:9;13186:19;13179:46;12578:653;;;;;;;;:::o;13236:184::-;13306:6;13359:2;13347:9;13338:7;13334:23;13330:32;13327:52;;;13375:1;13372;13365:12;13327:52;-1:-1:-1;13398:16:249;;13236:184;-1:-1:-1;13236:184:249:o;13425:386::-;13638:6;13627:9;13620:25;13681:2;13676;13665:9;13661:18;13654:30;13601:4;13701:61;13758:2;13747:9;13743:18;13735:6;13727;13701:61;:::i;:::-;13693:69;;13798:6;13793:2;13782:9;13778:18;13771:34;13425:386;;;;;;;:::o;15011:340::-;15188:2;15177:9;15170:21;15151:4;15208:45;15249:2;15238:9;15234:18;15226:6;15208:45;:::i;:::-;15200:53;;15301:42;15293:6;15289:55;15284:2;15273:9;15269:18;15262:83;15011:340;;;;;:::o;15356:251::-;15426:6;15479:2;15467:9;15458:7;15454:23;15450:32;15447:52;;;15495:1;15492;15485:12;15447:52;15527:9;15521:16;15546:31;15571:5;15546:31;:::i;15612:531::-;15853:66;15845:6;15841:79;15830:9;15823:98;15957:2;15952;15941:9;15937:18;15930:30;15804:4;15983:45;16024:2;16013:9;16009:18;16001:6;15983:45;:::i;:::-;16076:9;16068:6;16064:22;16059:2;16048:9;16044:18;16037:50;16104:33;16130:6;16122;16104:33;:::i;:::-;16096:41;15612:531;-1:-1:-1;;;;;;15612:531:249:o;16337:323::-;16413:6;16421;16474:2;16462:9;16453:7;16449:23;16445:32;16442:52;;;16490:1;16487;16480:12;16442:52;16529:9;16516:23;16548:31;16573:5;16548:31;:::i;:::-;16598:5;16650:2;16635:18;;;;16622:32;;-1:-1:-1;;;16337:323:249:o;17378:435::-;17591:2;17580:9;17573:21;17554:4;17611:61;17668:2;17657:9;17653:18;17645:6;17637;17611:61;:::i;:::-;17720:42;17708:55;;;;17703:2;17688:18;;17681:83;-1:-1:-1;17795:2:249;17780:18;17773:34;17603:69;17378:435;-1:-1:-1;;17378:435:249:o;18178:515::-;18415:3;18404:9;18397:22;18378:4;18436:62;18493:3;18482:9;18478:19;18470:6;18462;18436:62;:::i;:::-;18546:42;18534:55;;;;18529:2;18514:18;;18507:83;-1:-1:-1;18621:2:249;18606:18;;18599:34;;;;18681:4;18669:17;18664:2;18649:18;;;18642:45;18428:70;18178:515;-1:-1:-1;;18178:515:249:o;20128:465::-;20214:6;20222;20275:2;20263:9;20254:7;20250:23;20246:32;20243:52;;;20291:1;20288;20281:12;20243:52;20330:9;20317:23;20349:31;20374:5;20349:31;:::i;:::-;20399:5;-1:-1:-1;20455:2:249;20440:18;;20427:32;20482:18;20471:30;;20468:50;;;20514:1;20511;20504:12;20468:50;20537;20579:7;20570:6;20559:9;20555:22;20537:50;:::i;:::-;20527:60;;;20128:465;;;;;:::o","linkReferences":{"src/libraries/Security.sol":{"Security":[{"start":4895,"length":20},{"start":5016,"length":20},{"start":7756,"length":20},{"start":8679,"length":20},{"start":8800,"length":20},{"start":9406,"length":20},{"start":11076,"length":20},{"start":11197,"length":20},{"start":11683,"length":20},{"start":11804,"length":20},{"start":12985,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":10609,"length":20}]}},"immutableReferences":{"71353":[{"start":4544,"length":32},{"start":5837,"length":32},{"start":6563,"length":32},{"start":7420,"length":32},{"start":8343,"length":32},{"start":9056,"length":32},{"start":9229,"length":32},{"start":10086,"length":32}],"71356":[{"start":10641,"length":32}],"71437":[{"start":7000,"length":32},{"start":10440,"length":32}]}},"methodIdentifiers":{"ACL_ADMIN()":"5e209249","ACTION()":"dbd55fb3","ACTION_MANAGER()":"25889b22","ACTION_MANAGER_NAME_ACTIONS()":"739baf49","ACTION_USER_IMPLENTATION_CALLER()":"c414d4f9","ADDRESS_ACTION_MANAGER()":"ba9a08d7","ADDRESS_BLUEPRINT_MANAGER()":"e642ad34","ADDRESS_LENDER_MARKET()":"423ac8d9","ADDRESS_MANAGER_ACCESS_CONTROL()":"5f39ca22","ADDRESS_MODULE_MANAGER()":"420ea360","ADDRESS_MONEY_MARKET_NAME_BLUEPRINT()":"be22fa1e","ADDRESS_NAME_CONCRETE()":"d017d357","ADDRESS_NAME_MASTERVAULT()":"e51a3bab","ADDRESS_NAME_PORTFOLIO()":"430c6fe6","ADDRESS_NAME_STREAMVAULT()":"697e744c","ADDRESS_NAME_TOKEN_ETH()":"8b3e0471","ADDRESS_NAME_TOKEN_USDC()":"6a0b3f64","ADDRESS_NAME_TOKEN_WETH()":"26026d18","ADDRESS_STAKEABLE_C_ASSET_TOKEN()":"608dade9","ADDRESS_TOKEN_CHAIN_PRICEFEED()":"a652cb80","ADDRESS_TOKEN_PRICEFEED()":"057afbfe","ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT()":"a2fd43c5","BLUEPRINT()":"0072e140","BLUEPRINT_MANAGER()":"95789e1c","BLUEPRINT_MANAGER_NAME_BLUEPRINTS()":"2d1da17e","CONCRETE_MANAGER()":"2a0f4d6b","COUNTER_CLAIM_ID()":"a5be6063","COUNTER_LOAN_ID()":"724348ab","COUNTER_PORTFOLIO_ID()":"79c52aca","COUNTER_PROTECTION_ID()":"c5ad7879","COUNTER_RECEIPT_ID()":"f61e60f2","CT_REWARDS_TREASURY()":"5e61dc38","CT_STAKING_CONTRACT()":"264c1356","CT_TOKEN_ADDRESS()":"d88597de","MODULE()":"094d3a34","MODULE_MANAGER()":"8b40da7d","MODULE_MANAGER_NAME_MODULES()":"59dcf3f6","PORTFOLIOID_INDEX_TO_LOANID()":"ca6d5e33","PORTFOLIOID_INDEX_TO_USER()":"42ff308b","PORTFOLIOID_TO_USER()":"91aab3e4","PROTOCOL()":"91b9b827","PROTOCOL_MANAGER()":"ccca8911","RECEIPTID_TO_POSITION()":"d83205c0","RECEIPTID_TO_USER()":"ec11384a","ROLE_NAME_USER_TO_EXIST()":"7a25c9d3","STAKING_DURATION_AND_REWARDS()":"af895a3b","STAKING_RECEIPT_ADDRESS()":"9e5f8542","SUDO_ADMIN()":"8c3e62b6","TOKEN_LENDER_NAME_COLLATERAL_APPROVED()":"00a9d96e","USER_ID_CLAIM()":"d15263d3","USER_ID_PROTECTION()":"62a4c3df","USER_ID_PROTECTIONID()":"b70855fb","USER_ID_PROTECTION_FINANCIAL_TERMS()":"aacb7f34","USER_ID_PROTECTION_UPDATES()":"eaca3864","USER_INDEX_TO_BORROWDATA()":"7d49df3b","USER_INDEX_TO_LOANID()":"7d95de8e","USER_INDEX_TO_LOANINITIALDATA()":"61945bfc","USER_INDEX_TO_LOANSUPPLYDATA()":"678df18f","USER_INDEX_TO_LOANUPDATE()":"9d185264","USER_TO_PORTFOLIOID()":"638bf74f","USER_TO_RECEIPT_INDEX_COUNT()":"0e494332","executeActionTransaction(string,uint256,bytes,uint8)":"8d7e9e94","getActionAddress(string)":"ffbf5163","mintLoanToken(bytes,address,uint256)":"bff83fac","mintPortfolio(address)":"90264853","setBorrowData(bytes,bytes,address,uint256,bytes,uint256,uint8)":"7027f12c","updateLoanInfo(bytes,address,uint256,uint8)":"7b6a4ce6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"concreteStorage_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"loanId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"borrowData\",\"type\":\"bytes\"}],\"name\":\"BorrowDataSetToLoan\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"loanId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"loanInfo\",\"type\":\"bytes\"}],\"name\":\"LoanInfoUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"uniqueId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"loanInfo\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"portfolioId\",\"type\":\"uint256\"}],\"name\":\"LoanTokenMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"PortfolioMinted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER_NAME_ACTIONS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_USER_IMPLENTATION_CALLER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_LENDER_MARKET\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MANAGER_ACCESS_CONTROL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_CONCRETE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_MASTERVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_PORTFOLIO\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_STREAMVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_ETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_USDC\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_WETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_STAKEABLE_C_ASSET_TOKEN\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_CHAIN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER_NAME_BLUEPRINTS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONCRETE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_CLAIM_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_LOAN_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PORTFOLIO_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PROTECTION_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_RECEIPT_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_REWARDS_TREASURY\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_STAKING_CONTRACT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_TOKEN_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER_NAME_MODULES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_POSITION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLE_NAME_USER_TO_EXIST\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_DURATION_AND_REWARDS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_RECEIPT_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUDO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_LENDER_NAME_COLLATERAL_APPROVED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_CLAIM\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTIONID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_FINANCIAL_TERMS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_UPDATES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_BORROWDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANINITIALDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANSUPPLYDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANUPDATE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_PORTFOLIOID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_RECEIPT_INDEX_COUNT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation_\",\"type\":\"uint8\"}],\"name\":\"executeActionTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"}],\"name\":\"getActionAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"loanInfo\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"to_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"uniqueId_\",\"type\":\"uint256\"}],\"name\":\"mintLoanToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to_\",\"type\":\"address\"}],\"name\":\"mintPortfolio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"borrowData_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"loanUpdateInfo_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"loanInfo_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"portfolioId_\",\"type\":\"uint256\"},{\"internalType\":\"enum ILoan.UpdateField\",\"name\":\"updateField\",\"type\":\"uint8\"}],\"name\":\"setBorrowData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"loanInfo_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"},{\"internalType\":\"enum ILoan.UpdateField\",\"name\":\"updateField\",\"type\":\"uint8\"}],\"name\":\"updateLoanInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/borrow/blueprints/loan/LoanBlueprint.sol\":\"LoanBlueprint\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":10000000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"src/borrow/actions/loan/interfaces/ILoan.sol\":{\"keccak256\":\"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0\",\"dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ\"]},\"src/borrow/actions/protection/interfaces/IProtection.sol\":{\"keccak256\":\"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d\",\"dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2\"]},\"src/borrow/blueprints/loan/LoanBlueprint.sol\":{\"keccak256\":\"0x3a88f070af9a1baf33048bfc09d41181af540778ecb85d605ba85b2a2b096d4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://10c3df7089fd641455f80e2c419441338a2bdc136c79be02d3c4ddf9d4a4e88e\",\"dweb:/ipfs/Qmcfs18iVRgMzeGV6eFj9qRAfpvHN6a8eYqNxr1GYgNPpp\"]},\"src/borrow/utils/implementations/interfaces/ILenderBase.sol\":{\"keccak256\":\"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f\",\"dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK\"]},\"src/core/ActionManager.sol\":{\"keccak256\":\"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831\",\"dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG\"]},\"src/core/Executor.sol\":{\"keccak256\":\"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f\",\"dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h\"]},\"src/core/interfaces/IACL.sol\":{\"keccak256\":\"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a\",\"dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo\"]},\"src/core/interfaces/IConcreteStorage.sol\":{\"keccak256\":\"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8\",\"dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF\"]},\"src/core/interfaces/IERC165.sol\":{\"keccak256\":\"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473\",\"dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7\"]},\"src/core/utils/ConcreteRoles.sol\":{\"keccak256\":\"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab\",\"dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72\"]},\"src/core/utils/OnlyRole.sol\":{\"keccak256\":\"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a\",\"dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN\"]},\"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol\":{\"keccak256\":\"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980\",\"dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj\"]},\"src/helpers/Enum.sol\":{\"keccak256\":\"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2\",\"dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh\"]},\"src/helpers/Pointer.sol\":{\"keccak256\":\"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c\",\"dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ\"]},\"src/helpers/StorageHandler.sol\":{\"keccak256\":\"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab\",\"dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa\"]},\"src/helpers/base/BlueprintBase.sol\":{\"keccak256\":\"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0\",\"dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC\"]},\"src/libraries/BorrowEvents.sol\":{\"keccak256\":\"0xb33cee7ff7d279563b717b9fee9c24faef33368819add1a674b31ccea0d64822\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b52d128362b9a159e0d0d353de964687d736e1825f8564bb2552b0bd310bb7\",\"dweb:/ipfs/QmbsLhoTFXXGetgSX31QzSzWYhvMtD5UR1yfSGBdvvBPXR\"]},\"src/libraries/Security.sol\":{\"keccak256\":\"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c\",\"dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY\"]},\"src/libraries/StorageKeyLib.sol\":{\"keccak256\":\"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f\",\"dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"concreteStorage_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"loanId","type":"uint256","indexed":false},{"internalType":"bytes","name":"borrowData","type":"bytes","indexed":false}],"type":"event","name":"BorrowDataSetToLoan","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"loanId","type":"uint256","indexed":false},{"internalType":"bytes","name":"loanInfo","type":"bytes","indexed":false}],"type":"event","name":"LoanInfoUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"uniqueId","type":"uint256","indexed":false},{"internalType":"bytes","name":"loanInfo","type":"bytes","indexed":false},{"internalType":"uint256","name":"portfolioId","type":"uint256","indexed":false}],"type":"event","name":"LoanTokenMinted","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"address","name":"user","type":"address","indexed":true}],"type":"event","name":"PortfolioMinted","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ACL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_ACTION_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_LENDER_MARKET","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MODULE_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_CONCRETE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_MASTERVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_PORTFOLIO","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_STREAMVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_ETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_USDC","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_WETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONCRETE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_CLAIM_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_LOAN_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PORTFOLIO_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PROTECTION_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_RECEIPT_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_REWARDS_TREASURY","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_STAKING_CONTRACT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_TOKEN_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER_NAME_MODULES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_POSITION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROLE_NAME_USER_TO_EXIST","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_DURATION_AND_REWARDS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_RECEIPT_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SUDO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_CLAIM","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTIONID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_UPDATES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_BORROWDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANUPDATE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_PORTFOLIOID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"executeActionTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"}],"stateMutability":"view","type":"function","name":"getActionAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"loanInfo","type":"bytes"},{"internalType":"address","name":"to_","type":"address"},{"internalType":"uint256","name":"uniqueId_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mintLoanToken"},{"inputs":[{"internalType":"address","name":"to_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"mintPortfolio"},{"inputs":[{"internalType":"bytes","name":"borrowData_","type":"bytes"},{"internalType":"bytes","name":"loanUpdateInfo_","type":"bytes"},{"internalType":"address","name":"user_","type":"address"},{"internalType":"uint256","name":"loanId_","type":"uint256"},{"internalType":"bytes","name":"loanInfo_","type":"bytes"},{"internalType":"uint256","name":"portfolioId_","type":"uint256"},{"internalType":"enum ILoan.UpdateField","name":"updateField","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"setBorrowData"},{"inputs":[{"internalType":"bytes","name":"loanInfo_","type":"bytes"},{"internalType":"address","name":"user_","type":"address"},{"internalType":"uint256","name":"loanId_","type":"uint256"},{"internalType":"enum ILoan.UpdateField","name":"updateField","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateLoanInfo"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","chainlink/=lib/chainlink/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":10000000},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/borrow/blueprints/loan/LoanBlueprint.sol":"LoanBlueprint"},"evmVersion":"paris","libraries":{}},"sources":{"src/borrow/actions/loan/interfaces/ILoan.sol":{"keccak256":"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4","urls":["bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0","dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ"],"license":"MIT"},"src/borrow/actions/protection/interfaces/IProtection.sol":{"keccak256":"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935","urls":["bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d","dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2"],"license":"MIT"},"src/borrow/blueprints/loan/LoanBlueprint.sol":{"keccak256":"0x3a88f070af9a1baf33048bfc09d41181af540778ecb85d605ba85b2a2b096d4d","urls":["bzz-raw://10c3df7089fd641455f80e2c419441338a2bdc136c79be02d3c4ddf9d4a4e88e","dweb:/ipfs/Qmcfs18iVRgMzeGV6eFj9qRAfpvHN6a8eYqNxr1GYgNPpp"],"license":"MIT"},"src/borrow/utils/implementations/interfaces/ILenderBase.sol":{"keccak256":"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7","urls":["bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f","dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK"],"license":"MIT"},"src/core/ActionManager.sol":{"keccak256":"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a","urls":["bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831","dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG"],"license":"MIT"},"src/core/Executor.sol":{"keccak256":"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e","urls":["bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f","dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h"],"license":"MIT"},"src/core/interfaces/IACL.sol":{"keccak256":"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5","urls":["bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a","dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo"],"license":"MIT"},"src/core/interfaces/IConcreteStorage.sol":{"keccak256":"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9","urls":["bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8","dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF"],"license":"MIT"},"src/core/interfaces/IERC165.sol":{"keccak256":"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10","urls":["bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473","dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7"],"license":"MIT"},"src/core/utils/ConcreteRoles.sol":{"keccak256":"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e","urls":["bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab","dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72"],"license":"MIT"},"src/core/utils/OnlyRole.sol":{"keccak256":"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11","urls":["bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a","dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN"],"license":"MIT"},"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol":{"keccak256":"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f","urls":["bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980","dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj"],"license":"MIT"},"src/helpers/Enum.sol":{"keccak256":"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559","urls":["bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2","dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh"],"license":"MIT"},"src/helpers/Pointer.sol":{"keccak256":"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a","urls":["bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c","dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ"],"license":"MIT"},"src/helpers/StorageHandler.sol":{"keccak256":"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51","urls":["bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab","dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa"],"license":"MIT"},"src/helpers/base/BlueprintBase.sol":{"keccak256":"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492","urls":["bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0","dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC"],"license":"MIT"},"src/libraries/BorrowEvents.sol":{"keccak256":"0xb33cee7ff7d279563b717b9fee9c24faef33368819add1a674b31ccea0d64822","urls":["bzz-raw://96b52d128362b9a159e0d0d353de964687d736e1825f8564bb2552b0bd310bb7","dweb:/ipfs/QmbsLhoTFXXGetgSX31QzSzWYhvMtD5UR1yfSGBdvvBPXR"],"license":"MIT"},"src/libraries/Security.sol":{"keccak256":"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b","urls":["bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c","dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY"],"license":"MIT"},"src/libraries/StorageKeyLib.sol":{"keccak256":"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7","urls":["bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f","dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/borrow/blueprints/loan/LoanBlueprint.sol","id":62337,"exportedSymbols":{"BlueprintBase":[71548],"BorrowEventsLib":[74227],"Enum":[71189],"ILoan":[56049],"LoanBlueprint":[62336],"Security":[75484]},"nodeType":"SourceUnit","src":"31:5337:86","nodes":[{"id":61860,"nodeType":"PragmaDirective","src":"31:23:86","nodes":[],"literals":["solidity","0.8",".20"]},{"id":61862,"nodeType":"ImportDirective","src":"56:49:86","nodes":[],"absolutePath":"src/helpers/Enum.sol","file":"../../../helpers/Enum.sol","nameLocation":"-1:-1:-1","scope":62337,"sourceUnit":71190,"symbolAliases":[{"foreign":{"id":61861,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"65:4:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61864,"nodeType":"ImportDirective","src":"106:72:86","nodes":[],"absolutePath":"src/helpers/base/BlueprintBase.sol","file":"../../../helpers/base/BlueprintBase.sol","nameLocation":"-1:-1:-1","scope":62337,"sourceUnit":71549,"symbolAliases":[{"foreign":{"id":61863,"name":"BlueprintBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71548,"src":"115:13:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61866,"nodeType":"ImportDirective","src":"179:59:86","nodes":[],"absolutePath":"src/libraries/Security.sol","file":"../../../libraries/Security.sol","nameLocation":"-1:-1:-1","scope":62337,"sourceUnit":75485,"symbolAliases":[{"foreign":{"id":61865,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"188:8:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61868,"nodeType":"ImportDirective","src":"239:64:86","nodes":[],"absolutePath":"src/borrow/actions/loan/interfaces/ILoan.sol","file":"../../actions/loan/interfaces/ILoan.sol","nameLocation":"-1:-1:-1","scope":62337,"sourceUnit":56050,"symbolAliases":[{"foreign":{"id":61867,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"248:5:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61870,"nodeType":"ImportDirective","src":"304:70:86","nodes":[],"absolutePath":"src/libraries/BorrowEvents.sol","file":"../../../libraries/BorrowEvents.sol","nameLocation":"-1:-1:-1","scope":62337,"sourceUnit":74228,"symbolAliases":[{"foreign":{"id":61869,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"313:15:86","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62336,"nodeType":"ContractDefinition","src":"376:4991:86","nodes":[{"id":61881,"nodeType":"FunctionDefinition","src":"422:73:86","nodes":[],"body":{"id":61880,"nodeType":"Block","src":"492:3:86","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":61877,"name":"concreteStorage_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61874,"src":"474:16:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":61878,"kind":"baseConstructorSpecifier","modifierName":{"id":61876,"name":"BlueprintBase","nameLocations":["460:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"460:13:86"},"nodeType":"ModifierInvocation","src":"460:31:86"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":61875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61874,"mutability":"mutable","name":"concreteStorage_","nameLocation":"442:16:86","nodeType":"VariableDeclaration","scope":61881,"src":"434:24:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61873,"name":"address","nodeType":"ElementaryTypeName","src":"434:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"433:26:86"},"returnParameters":{"id":61879,"nodeType":"ParameterList","parameters":[],"src":"492:0:86"},"scope":62336,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62002,"nodeType":"FunctionDefinition","src":"501:1128:86","nodes":[],"body":{"id":62001,"nodeType":"Block","src":"668:961:86","nodes":[],"statements":[{"expression":{"arguments":[{"id":61896,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61885,"src":"703:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":61893,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"678:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":61895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"687:15:86","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"678:24:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":61897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"678:29:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61898,"nodeType":"ExpressionStatement","src":"678:29:86"},{"expression":{"arguments":[{"id":61902,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61887,"src":"739:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61899,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"717:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":61901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"726:12:86","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"717:21:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":61903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"717:32:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61904,"nodeType":"ExpressionStatement","src":"717:32:86"},{"assignments":[61906],"declarations":[{"constant":false,"id":61906,"mutability":"mutable","name":"portfolioIdKey","nameLocation":"767:14:86","nodeType":"VariableDeclaration","scope":62001,"src":"759:22:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"759:7:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61914,"initialValue":{"arguments":[{"id":61908,"name":"USER_TO_PORTFOLIOID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71195,"src":"794:19:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61911,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61885,"src":"826:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":61909,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"815:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61910,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"819:6:86","memberName":"encode","nodeType":"MemberAccess","src":"815:10:86","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"815:15:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61907,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"784:9:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"784:47:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"759:72:86"},{"assignments":[61916],"declarations":[{"constant":false,"id":61916,"mutability":"mutable","name":"portfolioId","nameLocation":"849:11:86","nodeType":"VariableDeclaration","scope":62001,"src":"841:19:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61915,"name":"uint256","nodeType":"ElementaryTypeName","src":"841:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61921,"initialValue":{"arguments":[{"id":61919,"name":"portfolioIdKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61906,"src":"887:14:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61917,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"863:15:86","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"879:7:86","memberName":"getUint","nodeType":"MemberAccess","referencedDeclaration":67286,"src":"863:23:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":61920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"863:39:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"841:61:86"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61922,"name":"portfolioId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61916,"src":"916:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":61923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"916:16:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61929,"nodeType":"IfStatement","src":"912:41:86","trueBody":{"expression":{"arguments":[{"id":61926,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61885,"src":"949:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61925,"name":"_mintPortfolio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62316,"src":"934:14:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":61927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"934:19:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61928,"nodeType":"ExpressionStatement","src":"934:19:86"}},{"expression":{"id":61935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61930,"name":"portfolioId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61916,"src":"963:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":61933,"name":"portfolioIdKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61906,"src":"1001:14:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61931,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"977:15:86","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"993:7:86","memberName":"getUint","nodeType":"MemberAccess","referencedDeclaration":67286,"src":"977:23:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":61934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"977:39:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"963:53:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61936,"nodeType":"ExpressionStatement","src":"963:53:86"},{"expression":{"arguments":[{"id":61940,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61887,"src":"1048:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61937,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1026:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":61939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1035:12:86","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"1026:21:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":61941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1026:32:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61942,"nodeType":"ExpressionStatement","src":"1026:32:86"},{"eventCall":{"arguments":[{"id":61946,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61885,"src":"1105:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61947,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61887,"src":"1110:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61948,"name":"loanInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61883,"src":"1121:8:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":61949,"name":"portfolioId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61916,"src":"1131:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61943,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"1073:15:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":61945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1089:15:86","memberName":"LoanTokenMinted","nodeType":"MemberAccess","referencedDeclaration":74060,"src":"1073:31:86","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,uint256,bytes memory,uint256)"}},"id":61950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1073:70:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61951,"nodeType":"EmitStatement","src":"1068:75:86"},{"assignments":[61953],"declarations":[{"constant":false,"id":61953,"mutability":"mutable","name":"mintData","nameLocation":"1166:8:86","nodeType":"VariableDeclaration","scope":62001,"src":"1153:21:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61952,"name":"bytes","nodeType":"ElementaryTypeName","src":"1153:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61960,"initialValue":{"arguments":[{"hexValue":"6d696e744c6f616e546f6b656e28616464726573732c75696e7432353629","id":61956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1201:32:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_f741c53706bd13e4429a21ade09006f678cdaf911e0d46bc4b2e3da45a475d7e","typeString":"literal_string \"mintLoanToken(address,uint256)\""},"value":"mintLoanToken(address,uint256)"},{"id":61957,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61885,"src":"1235:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61958,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61887,"src":"1240:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f741c53706bd13e4429a21ade09006f678cdaf911e0d46bc4b2e3da45a475d7e","typeString":"literal_string \"mintLoanToken(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61954,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1177:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1181:19:86","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1177:23:86","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":61959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:73:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1153:97:86"},{"assignments":[61962],"declarations":[{"constant":false,"id":61962,"mutability":"mutable","name":"success","nameLocation":"1265:7:86","nodeType":"VariableDeclaration","scope":62001,"src":"1260:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61961,"name":"bool","nodeType":"ElementaryTypeName","src":"1260:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":61971,"initialValue":{"arguments":[{"hexValue":"4d696e744c6f616e546f6b656e416374696f6e","id":61964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1300:21:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_47b1b5215b5c7235fe86fced05a7da4790f7c9788b717f1dc65d74cfd572ae88","typeString":"literal_string \"MintLoanTokenAction\""},"value":"MintLoanTokenAction"},{"hexValue":"30","id":61965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1323:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":61966,"name":"mintData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61953,"src":"1326:8:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":61967,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"1336:4:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":61968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1341:9:86","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"1336:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":61969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1351:4:86","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"1336:19:86","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_47b1b5215b5c7235fe86fced05a7da4790f7c9788b717f1dc65d74cfd572ae88","typeString":"literal_string \"MintLoanTokenAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":61963,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"1275:24:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":61970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1275:81:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1260:96:86"},{"expression":{"arguments":[{"id":61973,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61962,"src":"1374:7:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a204d696e744c6f616e546f6b656e416374696f6e206661696c6564","id":61974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1383:33:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b479689e5c2f6ac4a1406a2f6af6f2d5f8671cf253f2aeac367a6571b14972f","typeString":"literal_string \"ERR: MintLoanTokenAction failed\""},"value":"ERR: MintLoanTokenAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0b479689e5c2f6ac4a1406a2f6af6f2d5f8671cf253f2aeac367a6571b14972f","typeString":"literal_string \"ERR: MintLoanTokenAction failed\""}],"id":61972,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1366:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:51:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61976,"nodeType":"ExpressionStatement","src":"1366:51:86"},{"assignments":[61978],"declarations":[{"constant":false,"id":61978,"mutability":"mutable","name":"loanKey","nameLocation":"1435:7:86","nodeType":"VariableDeclaration","scope":62001,"src":"1427:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1427:7:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61987,"initialValue":{"arguments":[{"id":61980,"name":"USER_INDEX_TO_LOANID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71216,"src":"1455:20:86","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61983,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61885,"src":"1488:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61984,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61887,"src":"1493:9:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1477:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1481:6:86","memberName":"encode","nodeType":"MemberAccess","src":"1477:10:86","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1477:26:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61979,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"1445:9:86","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1445:59:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1427:77:86"},{"assignments":[61989],"declarations":[{"constant":false,"id":61989,"mutability":"mutable","name":"loanId","nameLocation":"1522:6:86","nodeType":"VariableDeclaration","scope":62001,"src":"1514:14:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61988,"name":"uint256","nodeType":"ElementaryTypeName","src":"1514:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61994,"initialValue":{"arguments":[{"id":61992,"name":"loanKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61978,"src":"1555:7:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61990,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"1531:15:86","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1547:7:86","memberName":"getUint","nodeType":"MemberAccess","referencedDeclaration":67286,"src":"1531:23:86","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":61993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1531:32:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1514:49:86"},{"expression":{"arguments":[{"id":61996,"name":"loanInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61883,"src":"1592:8:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":61997,"name":"loanId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61989,"src":"1602:6:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61998,"name":"portfolioId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61916,"src":"1610:11:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61995,"name":"setInitialLoanInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62050,"src":"1573:18:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes calldata,uint256,uint256)"}},"id":61999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:49:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62000,"nodeType":"ExpressionStatement","src":"1573:49:86"}]},"functionSelector":"bff83fac","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":61890,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"645:17:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":61891,"kind":"modifierInvocation","modifierName":{"id":61889,"name":"onlyRole","nameLocations":["636:8:86"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"636:8:86"},"nodeType":"ModifierInvocation","src":"636:27:86"}],"name":"mintLoanToken","nameLocation":"510:13:86","parameters":{"id":61888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61883,"mutability":"mutable","name":"loanInfo","nameLocation":"548:8:86","nodeType":"VariableDeclaration","scope":62002,"src":"533:23:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":61882,"name":"bytes","nodeType":"ElementaryTypeName","src":"533:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":61885,"mutability":"mutable","name":"to_","nameLocation":"574:3:86","nodeType":"VariableDeclaration","scope":62002,"src":"566:11:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61884,"name":"address","nodeType":"ElementaryTypeName","src":"566:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61887,"mutability":"mutable","name":"uniqueId_","nameLocation":"595:9:86","nodeType":"VariableDeclaration","scope":62002,"src":"587:17:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61886,"name":"uint256","nodeType":"ElementaryTypeName","src":"587:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"523:87:86"},"returnParameters":{"id":61892,"nodeType":"ParameterList","parameters":[],"src":"668:0:86"},"scope":62336,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":62050,"nodeType":"FunctionDefinition","src":"1635:533:86","nodes":[],"body":{"id":62049,"nodeType":"Block","src":"1736:432:86","nodes":[],"statements":[{"expression":{"arguments":[{"id":62014,"name":"loanInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62004,"src":"1782:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":62011,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1746:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1755:26:86","memberName":"validateSetLoanTokenAction","nodeType":"MemberAccess","referencedDeclaration":75219,"src":"1746:35:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (bytes calldata) pure"}},"id":62015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1746:46:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62016,"nodeType":"ExpressionStatement","src":"1746:46:86"},{"expression":{"arguments":[{"id":62020,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62006,"src":"1824:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62017,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1802:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1811:12:86","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"1802:21:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":62021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:30:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62022,"nodeType":"ExpressionStatement","src":"1802:30:86"},{"assignments":[62024],"declarations":[{"constant":false,"id":62024,"mutability":"mutable","name":"setInitialLoanData","nameLocation":"1855:18:86","nodeType":"VariableDeclaration","scope":62049,"src":"1842:31:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62023,"name":"bytes","nodeType":"ElementaryTypeName","src":"1842:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":62032,"initialValue":{"arguments":[{"hexValue":"736574537570706c79446174612875696e743235362c62797465732c75696e7432353629","id":62027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1912:38:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_0554fd1ab3c3a356fd89886de109423153f59fe5a4ddf23e94cff84c22af7b87","typeString":"literal_string \"setSupplyData(uint256,bytes,uint256)\""},"value":"setSupplyData(uint256,bytes,uint256)"},{"id":62028,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62006,"src":"1952:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62029,"name":"loanInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62004,"src":"1961:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62030,"name":"portfolioId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62008,"src":"1972:12:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0554fd1ab3c3a356fd89886de109423153f59fe5a4ddf23e94cff84c22af7b87","typeString":"literal_string \"setSupplyData(uint256,bytes,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62025,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1888:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1892:19:86","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1888:23:86","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:97:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1842:143:86"},{"assignments":[62034],"declarations":[{"constant":false,"id":62034,"mutability":"mutable","name":"success","nameLocation":"2000:7:86","nodeType":"VariableDeclaration","scope":62049,"src":"1995:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":62033,"name":"bool","nodeType":"ElementaryTypeName","src":"1995:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":62043,"initialValue":{"arguments":[{"hexValue":"536574537570706c7944617461416374696f6e","id":62036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2035:21:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2829db815216b848abc51b37e17771658bfe363e66fca83a0649054015255fa","typeString":"literal_string \"SetSupplyDataAction\""},"value":"SetSupplyDataAction"},{"hexValue":"30","id":62037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2058:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":62038,"name":"setInitialLoanData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62024,"src":"2061:18:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":62039,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"2081:4:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":62040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2086:9:86","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"2081:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":62041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2096:4:86","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"2081:19:86","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2829db815216b848abc51b37e17771658bfe363e66fca83a0649054015255fa","typeString":"literal_string \"SetSupplyDataAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":62035,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"2010:24:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":62042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2010:91:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1995:106:86"},{"expression":{"arguments":[{"id":62045,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62034,"src":"2119:7:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205365744c6f616e546f6b656e416374696f6e206661696c6564","id":62046,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2128:32:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_98874a3d56fd5d51d212629db0df506662ac876c1ebd5bddf10a80e9da335911","typeString":"literal_string \"ERR: SetLoanTokenAction failed\""},"value":"ERR: SetLoanTokenAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_98874a3d56fd5d51d212629db0df506662ac876c1ebd5bddf10a80e9da335911","typeString":"literal_string \"ERR: SetLoanTokenAction failed\""}],"id":62044,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2111:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2111:50:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62048,"nodeType":"ExpressionStatement","src":"2111:50:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setInitialLoanInfo","nameLocation":"1644:18:86","parameters":{"id":62009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62004,"mutability":"mutable","name":"loanInfo_","nameLocation":"1678:9:86","nodeType":"VariableDeclaration","scope":62050,"src":"1663:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62003,"name":"bytes","nodeType":"ElementaryTypeName","src":"1663:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62006,"mutability":"mutable","name":"loanId_","nameLocation":"1697:7:86","nodeType":"VariableDeclaration","scope":62050,"src":"1689:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62005,"name":"uint256","nodeType":"ElementaryTypeName","src":"1689:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62008,"mutability":"mutable","name":"portfolioId_","nameLocation":"1714:12:86","nodeType":"VariableDeclaration","scope":62050,"src":"1706:20:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62007,"name":"uint256","nodeType":"ElementaryTypeName","src":"1706:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1662:65:86"},"returnParameters":{"id":62010,"nodeType":"ParameterList","parameters":[],"src":"1736:0:86"},"scope":62336,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":62132,"nodeType":"FunctionDefinition","src":"2174:965:86","nodes":[],"body":{"id":62131,"nodeType":"Block","src":"2487:652:86","nodes":[],"statements":[{"expression":{"arguments":[{"id":62074,"name":"borrowData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62052,"src":"2536:11:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":62071,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"2497:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2506:29:86","memberName":"validateAddBorrowToLoanAction","nodeType":"MemberAccess","referencedDeclaration":75256,"src":"2497:38:86","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (bytes calldata) pure"}},"id":62075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2497:51:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62076,"nodeType":"ExpressionStatement","src":"2497:51:86"},{"expression":{"arguments":[{"id":62080,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62056,"src":"2583:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62077,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"2558:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2567:15:86","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"2558:24:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2558:31:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62082,"nodeType":"ExpressionStatement","src":"2558:31:86"},{"expression":{"arguments":[{"id":62086,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62058,"src":"2621:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62083,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"2599:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2608:12:86","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"2599:21:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":62087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2599:30:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62088,"nodeType":"ExpressionStatement","src":"2599:30:86"},{"eventCall":{"arguments":[{"id":62092,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62058,"src":"2680:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62093,"name":"borrowData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62052,"src":"2689:11:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":62089,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"2644:15:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":62091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2660:19:86","memberName":"BorrowDataSetToLoan","nodeType":"MemberAccess","referencedDeclaration":74066,"src":"2644:35:86","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":62094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2644:57:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62095,"nodeType":"EmitStatement","src":"2639:62:86"},{"assignments":[62097],"declarations":[{"constant":false,"id":62097,"mutability":"mutable","name":"addBorrowData","nameLocation":"2724:13:86","nodeType":"VariableDeclaration","scope":62131,"src":"2711:26:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62096,"name":"bytes","nodeType":"ElementaryTypeName","src":"2711:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":62106,"initialValue":{"arguments":[{"hexValue":"736574426f72726f77446174612862797465732c616464726573732c75696e743235362c75696e7432353629","id":62100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2777:46:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e03995bd5c4f201770422064d20fae7d6e12d0049b393d06e008bcb3ab2e96d","typeString":"literal_string \"setBorrowData(bytes,address,uint256,uint256)\""},"value":"setBorrowData(bytes,address,uint256,uint256)"},{"id":62101,"name":"borrowData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62052,"src":"2825:11:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62102,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62056,"src":"2838:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62103,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62058,"src":"2845:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62104,"name":"portfolioId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62062,"src":"2854:12:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e03995bd5c4f201770422064d20fae7d6e12d0049b393d06e008bcb3ab2e96d","typeString":"literal_string \"setBorrowData(bytes,address,uint256,uint256)\""},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62098,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2740:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2744:19:86","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2740:23:86","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2740:136:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2711:165:86"},{"assignments":[62108],"declarations":[{"constant":false,"id":62108,"mutability":"mutable","name":"success","nameLocation":"2891:7:86","nodeType":"VariableDeclaration","scope":62131,"src":"2886:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":62107,"name":"bool","nodeType":"ElementaryTypeName","src":"2886:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":62117,"initialValue":{"arguments":[{"hexValue":"536574426f72726f7744617461416374696f6e","id":62110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2926:21:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_52d420d2b73ce22eb579577c52cab686dbdd876bf29fc0af25a016ffb2865c53","typeString":"literal_string \"SetBorrowDataAction\""},"value":"SetBorrowDataAction"},{"hexValue":"30","id":62111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2949:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":62112,"name":"addBorrowData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62097,"src":"2952:13:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":62113,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"2967:4:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":62114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2972:9:86","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"2967:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":62115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2982:4:86","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"2967:19:86","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52d420d2b73ce22eb579577c52cab686dbdd876bf29fc0af25a016ffb2865c53","typeString":"literal_string \"SetBorrowDataAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":62109,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"2901:24:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":62116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2901:86:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2886:101:86"},{"expression":{"arguments":[{"id":62119,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62108,"src":"3005:7:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20736574426f72726f7744617461416374696f6e206661696c6564","id":62120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3014:33:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_d9dc32b4fc68e3ce0f68aaad29d4712ac3bd165fceebc03a673d29d3c2273e9c","typeString":"literal_string \"ERR: setBorrowDataAction failed\""},"value":"ERR: setBorrowDataAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d9dc32b4fc68e3ce0f68aaad29d4712ac3bd165fceebc03a673d29d3c2273e9c","typeString":"literal_string \"ERR: setBorrowDataAction failed\""}],"id":62118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2997:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2997:51:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62122,"nodeType":"ExpressionStatement","src":"2997:51:86"},{"expression":{"arguments":[{"id":62124,"name":"loanUpdateInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62054,"src":"3076:15:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62125,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62056,"src":"3093:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62126,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62058,"src":"3100:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62127,"name":"updateField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62065,"src":"3109:11:86","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}},{"id":62128,"name":"loanInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62060,"src":"3122:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":62123,"name":"setLoanUpdateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62192,"src":"3058:17:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_address_$_t_uint256_$_t_enum$_UpdateField_$55984_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function (bytes calldata,address,uint256,enum ILoan.UpdateField,bytes calldata)"}},"id":62129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3058:74:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62130,"nodeType":"ExpressionStatement","src":"3058:74:86"}]},"functionSelector":"7027f12c","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":62068,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"2464:17:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":62069,"kind":"modifierInvocation","modifierName":{"id":62067,"name":"onlyRole","nameLocations":["2455:8:86"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"2455:8:86"},"nodeType":"ModifierInvocation","src":"2455:27:86"}],"name":"setBorrowData","nameLocation":"2183:13:86","parameters":{"id":62066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62052,"mutability":"mutable","name":"borrowData_","nameLocation":"2221:11:86","nodeType":"VariableDeclaration","scope":62132,"src":"2206:26:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62051,"name":"bytes","nodeType":"ElementaryTypeName","src":"2206:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62054,"mutability":"mutable","name":"loanUpdateInfo_","nameLocation":"2257:15:86","nodeType":"VariableDeclaration","scope":62132,"src":"2242:30:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62053,"name":"bytes","nodeType":"ElementaryTypeName","src":"2242:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62056,"mutability":"mutable","name":"user_","nameLocation":"2290:5:86","nodeType":"VariableDeclaration","scope":62132,"src":"2282:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62055,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62058,"mutability":"mutable","name":"loanId_","nameLocation":"2313:7:86","nodeType":"VariableDeclaration","scope":62132,"src":"2305:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62057,"name":"uint256","nodeType":"ElementaryTypeName","src":"2305:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62060,"mutability":"mutable","name":"loanInfo_","nameLocation":"2345:9:86","nodeType":"VariableDeclaration","scope":62132,"src":"2330:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62059,"name":"bytes","nodeType":"ElementaryTypeName","src":"2330:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62062,"mutability":"mutable","name":"portfolioId_","nameLocation":"2372:12:86","nodeType":"VariableDeclaration","scope":62132,"src":"2364:20:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62061,"name":"uint256","nodeType":"ElementaryTypeName","src":"2364:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62065,"mutability":"mutable","name":"updateField","nameLocation":"2412:11:86","nodeType":"VariableDeclaration","scope":62132,"src":"2394:29:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"},"typeName":{"id":62064,"nodeType":"UserDefinedTypeName","pathNode":{"id":62063,"name":"ILoan.UpdateField","nameLocations":["2394:5:86","2400:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":55984,"src":"2394:17:86"},"referencedDeclaration":55984,"src":"2394:17:86","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}},"visibility":"internal"}],"src":"2196:233:86"},"returnParameters":{"id":62070,"nodeType":"ParameterList","parameters":[],"src":"2487:0:86"},"scope":62336,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":62192,"nodeType":"FunctionDefinition","src":"3145:703:86","nodes":[],"body":{"id":62191,"nodeType":"Block","src":"3361:487:86","nodes":[],"statements":[{"expression":{"arguments":[{"id":62149,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62136,"src":"3396:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62146,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"3371:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3380:15:86","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"3371:24:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3371:31:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62151,"nodeType":"ExpressionStatement","src":"3371:31:86"},{"expression":{"arguments":[{"id":62155,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62138,"src":"3434:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62152,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"3412:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3421:12:86","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"3412:21:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":62156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3412:30:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62157,"nodeType":"ExpressionStatement","src":"3412:30:86"},{"assignments":[62159],"declarations":[{"constant":false,"id":62159,"mutability":"mutable","name":"setLoanUpdateBytes","nameLocation":"3465:18:86","nodeType":"VariableDeclaration","scope":62191,"src":"3452:31:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62158,"name":"bytes","nodeType":"ElementaryTypeName","src":"3452:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":62167,"initialValue":{"arguments":[{"hexValue":"7365744c6f616e557064617465446174612862797465732c616464726573732c75696e7432353629","id":62162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3522:42:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_34723549e4b8ed048f5b0575a9e2ebe1f6e6804aac125e73f3cb6ceb4e223db9","typeString":"literal_string \"setLoanUpdateData(bytes,address,uint256)\""},"value":"setLoanUpdateData(bytes,address,uint256)"},{"id":62163,"name":"loanUpdateInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62134,"src":"3566:15:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62164,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62136,"src":"3583:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62165,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62138,"src":"3590:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34723549e4b8ed048f5b0575a9e2ebe1f6e6804aac125e73f3cb6ceb4e223db9","typeString":"literal_string \"setLoanUpdateData(bytes,address,uint256)\""},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3498:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3502:19:86","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3498:23:86","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3498:100:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3452:146:86"},{"assignments":[62169],"declarations":[{"constant":false,"id":62169,"mutability":"mutable","name":"success","nameLocation":"3613:7:86","nodeType":"VariableDeclaration","scope":62191,"src":"3608:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":62168,"name":"bool","nodeType":"ElementaryTypeName","src":"3608:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":62178,"initialValue":{"arguments":[{"hexValue":"5365744c6f616e557064617465416374696f6e","id":62171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3648:21:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_4de27a9224bc7b574fd4d71b230a9df55672d58bf8588aac9f5c74c7b1cf6141","typeString":"literal_string \"SetLoanUpdateAction\""},"value":"SetLoanUpdateAction"},{"hexValue":"30","id":62172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3671:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":62173,"name":"setLoanUpdateBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62159,"src":"3674:18:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":62174,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"3694:4:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":62175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3699:9:86","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"3694:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":62176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3709:4:86","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"3694:19:86","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4de27a9224bc7b574fd4d71b230a9df55672d58bf8588aac9f5c74c7b1cf6141","typeString":"literal_string \"SetLoanUpdateAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":62170,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"3623:24:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":62177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:91:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3608:106:86"},{"expression":{"arguments":[{"id":62180,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62169,"src":"3732:7:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205365744c6f616e557064617465416374696f6e206661696c6564","id":62181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3741:33:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_99b4c3dd191351a41519dc218922f76e98e13d9be3749ed55815351bd6e9991b","typeString":"literal_string \"ERR: SetLoanUpdateAction failed\""},"value":"ERR: SetLoanUpdateAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_99b4c3dd191351a41519dc218922f76e98e13d9be3749ed55815351bd6e9991b","typeString":"literal_string \"ERR: SetLoanUpdateAction failed\""}],"id":62179,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3724:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3724:51:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62183,"nodeType":"ExpressionStatement","src":"3724:51:86"},{"expression":{"arguments":[{"id":62185,"name":"loanInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62143,"src":"3801:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62186,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62136,"src":"3812:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62187,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62138,"src":"3819:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62188,"name":"updateField_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62141,"src":"3828:12:86","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}],"id":62184,"name":"_updateLoanInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62255,"src":"3785:15:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_address_$_t_uint256_$_t_enum$_UpdateField_$55984_$returns$__$","typeString":"function (bytes calldata,address,uint256,enum ILoan.UpdateField)"}},"id":62189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3785:56:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62190,"nodeType":"ExpressionStatement","src":"3785:56:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setLoanUpdateData","nameLocation":"3154:17:86","parameters":{"id":62144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62134,"mutability":"mutable","name":"loanUpdateInfo_","nameLocation":"3196:15:86","nodeType":"VariableDeclaration","scope":62192,"src":"3181:30:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62133,"name":"bytes","nodeType":"ElementaryTypeName","src":"3181:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62136,"mutability":"mutable","name":"user_","nameLocation":"3229:5:86","nodeType":"VariableDeclaration","scope":62192,"src":"3221:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62135,"name":"address","nodeType":"ElementaryTypeName","src":"3221:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62138,"mutability":"mutable","name":"loanId_","nameLocation":"3252:7:86","nodeType":"VariableDeclaration","scope":62192,"src":"3244:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62137,"name":"uint256","nodeType":"ElementaryTypeName","src":"3244:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62141,"mutability":"mutable","name":"updateField_","nameLocation":"3287:12:86","nodeType":"VariableDeclaration","scope":62192,"src":"3269:30:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"},"typeName":{"id":62140,"nodeType":"UserDefinedTypeName","pathNode":{"id":62139,"name":"ILoan.UpdateField","nameLocations":["3269:5:86","3275:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":55984,"src":"3269:17:86"},"referencedDeclaration":55984,"src":"3269:17:86","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}},"visibility":"internal"},{"constant":false,"id":62143,"mutability":"mutable","name":"loanInfo_","nameLocation":"3324:9:86","nodeType":"VariableDeclaration","scope":62192,"src":"3309:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62142,"name":"bytes","nodeType":"ElementaryTypeName","src":"3309:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3171:168:86"},"returnParameters":{"id":62145,"nodeType":"ParameterList","parameters":[],"src":"3361:0:86"},"scope":62336,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":62255,"nodeType":"FunctionDefinition","src":"3854:687:86","nodes":[],"body":{"id":62254,"nodeType":"Block","src":"4026:515:86","nodes":[],"statements":[{"expression":{"arguments":[{"id":62207,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62196,"src":"4061:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62204,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"4036:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4045:15:86","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"4036:24:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4036:31:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62209,"nodeType":"ExpressionStatement","src":"4036:31:86"},{"expression":{"arguments":[{"id":62213,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62198,"src":"4099:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62210,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"4077:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4086:12:86","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"4077:21:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":62214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4077:30:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62215,"nodeType":"ExpressionStatement","src":"4077:30:86"},{"eventCall":{"arguments":[{"id":62219,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62196,"src":"4154:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62220,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62198,"src":"4161:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62221,"name":"loanInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62194,"src":"4170:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":62216,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"4122:15:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":62218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4138:15:86","memberName":"LoanInfoUpdated","nodeType":"MemberAccess","referencedDeclaration":74080,"src":"4122:31:86","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":62222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4122:58:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62223,"nodeType":"EmitStatement","src":"4117:63:86"},{"assignments":[62225],"declarations":[{"constant":false,"id":62225,"mutability":"mutable","name":"updateLoanData","nameLocation":"4203:14:86","nodeType":"VariableDeclaration","scope":62254,"src":"4190:27:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62224,"name":"bytes","nodeType":"ElementaryTypeName","src":"4190:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":62237,"initialValue":{"arguments":[{"hexValue":"7570646174654c6f616e496e666f2862797465732c616464726573732c75696e743235362c75696e743829","id":62228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4257:45:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b6a4ce690a8d994c7dd962567833b846b9abb724bcb1a97ba5fae27687b3436","typeString":"literal_string \"updateLoanInfo(bytes,address,uint256,uint8)\""},"value":"updateLoanInfo(bytes,address,uint256,uint8)"},{"id":62229,"name":"loanInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62194,"src":"4304:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62230,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62196,"src":"4315:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62231,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62198,"src":"4322:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":62234,"name":"updateField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62201,"src":"4337:11:86","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}],"id":62233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4331:5:86","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":62232,"name":"uint8","nodeType":"ElementaryTypeName","src":"4331:5:86","typeDescriptions":{}}},"id":62235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4331:18:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b6a4ce690a8d994c7dd962567833b846b9abb724bcb1a97ba5fae27687b3436","typeString":"literal_string \"updateLoanInfo(bytes,address,uint256,uint8)\""},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":62226,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4220:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4224:19:86","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4220:23:86","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4220:139:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4190:169:86"},{"assignments":[62239],"declarations":[{"constant":false,"id":62239,"mutability":"mutable","name":"success","nameLocation":"4374:7:86","nodeType":"VariableDeclaration","scope":62254,"src":"4369:12:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":62238,"name":"bool","nodeType":"ElementaryTypeName","src":"4369:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":62248,"initialValue":{"arguments":[{"hexValue":"5570646174654c6f616e496e666f416374696f6e","id":62241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4409:22:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a88f3497097e119d8b5607f2093eb34e3771019a45bcb831c21bb984849dfda","typeString":"literal_string \"UpdateLoanInfoAction\""},"value":"UpdateLoanInfoAction"},{"hexValue":"30","id":62242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4433:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":62243,"name":"updateLoanData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62225,"src":"4436:14:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":62244,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"4452:4:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":62245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4457:9:86","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"4452:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":62246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4467:4:86","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"4452:19:86","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a88f3497097e119d8b5607f2093eb34e3771019a45bcb831c21bb984849dfda","typeString":"literal_string \"UpdateLoanInfoAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":62240,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"4384:24:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":62247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4384:88:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4369:103:86"},{"expression":{"arguments":[{"id":62250,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62239,"src":"4490:7:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205570646174654c6f616e496e666f416374696f6e206661696c6564","id":62251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4499:34:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd5fd81816c2716ae640a3d23ebc9ffc8e042713ce1683918870bf11ab666a79","typeString":"literal_string \"ERR: UpdateLoanInfoAction failed\""},"value":"ERR: UpdateLoanInfoAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cd5fd81816c2716ae640a3d23ebc9ffc8e042713ce1683918870bf11ab666a79","typeString":"literal_string \"ERR: UpdateLoanInfoAction failed\""}],"id":62249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4482:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4482:52:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62253,"nodeType":"ExpressionStatement","src":"4482:52:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_updateLoanInfo","nameLocation":"3863:15:86","parameters":{"id":62202,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62194,"mutability":"mutable","name":"loanInfo_","nameLocation":"3903:9:86","nodeType":"VariableDeclaration","scope":62255,"src":"3888:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62193,"name":"bytes","nodeType":"ElementaryTypeName","src":"3888:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62196,"mutability":"mutable","name":"user_","nameLocation":"3930:5:86","nodeType":"VariableDeclaration","scope":62255,"src":"3922:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62195,"name":"address","nodeType":"ElementaryTypeName","src":"3922:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62198,"mutability":"mutable","name":"loanId_","nameLocation":"3953:7:86","nodeType":"VariableDeclaration","scope":62255,"src":"3945:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62197,"name":"uint256","nodeType":"ElementaryTypeName","src":"3945:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62201,"mutability":"mutable","name":"updateField","nameLocation":"3988:11:86","nodeType":"VariableDeclaration","scope":62255,"src":"3970:29:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"},"typeName":{"id":62200,"nodeType":"UserDefinedTypeName","pathNode":{"id":62199,"name":"ILoan.UpdateField","nameLocations":["3970:5:86","3976:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":55984,"src":"3970:17:86"},"referencedDeclaration":55984,"src":"3970:17:86","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}},"visibility":"internal"}],"src":"3878:127:86"},"returnParameters":{"id":62203,"nodeType":"ParameterList","parameters":[],"src":"4026:0:86"},"scope":62336,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":62278,"nodeType":"FunctionDefinition","src":"4547:280:86","nodes":[],"body":{"id":62277,"nodeType":"Block","src":"4755:72:86","nodes":[],"statements":[{"expression":{"arguments":[{"id":62271,"name":"loanInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62257,"src":"4781:9:86","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62272,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62259,"src":"4792:5:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62273,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62261,"src":"4799:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62274,"name":"updateField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62264,"src":"4808:11:86","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}],"id":62270,"name":"_updateLoanInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62255,"src":"4765:15:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_address_$_t_uint256_$_t_enum$_UpdateField_$55984_$returns$__$","typeString":"function (bytes calldata,address,uint256,enum ILoan.UpdateField)"}},"id":62275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4765:55:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62276,"nodeType":"ExpressionStatement","src":"4765:55:86"}]},"functionSelector":"7b6a4ce6","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":62267,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"4732:17:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":62268,"kind":"modifierInvocation","modifierName":{"id":62266,"name":"onlyRole","nameLocations":["4723:8:86"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"4723:8:86"},"nodeType":"ModifierInvocation","src":"4723:27:86"}],"name":"updateLoanInfo","nameLocation":"4556:14:86","parameters":{"id":62265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62257,"mutability":"mutable","name":"loanInfo_","nameLocation":"4595:9:86","nodeType":"VariableDeclaration","scope":62278,"src":"4580:24:86","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62256,"name":"bytes","nodeType":"ElementaryTypeName","src":"4580:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62259,"mutability":"mutable","name":"user_","nameLocation":"4622:5:86","nodeType":"VariableDeclaration","scope":62278,"src":"4614:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62258,"name":"address","nodeType":"ElementaryTypeName","src":"4614:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62261,"mutability":"mutable","name":"loanId_","nameLocation":"4645:7:86","nodeType":"VariableDeclaration","scope":62278,"src":"4637:15:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62260,"name":"uint256","nodeType":"ElementaryTypeName","src":"4637:7:86","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62264,"mutability":"mutable","name":"updateField","nameLocation":"4680:11:86","nodeType":"VariableDeclaration","scope":62278,"src":"4662:29:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"},"typeName":{"id":62263,"nodeType":"UserDefinedTypeName","pathNode":{"id":62262,"name":"ILoan.UpdateField","nameLocations":["4662:5:86","4668:11:86"],"nodeType":"IdentifierPath","referencedDeclaration":55984,"src":"4662:17:86"},"referencedDeclaration":55984,"src":"4662:17:86","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}},"visibility":"internal"}],"src":"4570:127:86"},"returnParameters":{"id":62269,"nodeType":"ParameterList","parameters":[],"src":"4755:0:86"},"scope":62336,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":62316,"nodeType":"FunctionDefinition","src":"4833:378:86","nodes":[],"body":{"id":62315,"nodeType":"Block","src":"4878:333:86","nodes":[],"statements":[{"eventCall":{"arguments":[{"expression":{"id":62286,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4925:3:86","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":62287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4929:6:86","memberName":"sender","nodeType":"MemberAccess","src":"4925:10:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62288,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62280,"src":"4937:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62283,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"4893:15:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":62285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4909:15:86","memberName":"PortfolioMinted","nodeType":"MemberAccess","referencedDeclaration":74086,"src":"4893:31:86","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":62289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4893:48:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62290,"nodeType":"EmitStatement","src":"4888:53:86"},{"assignments":[62292],"declarations":[{"constant":false,"id":62292,"mutability":"mutable","name":"createPortfolioData","nameLocation":"4964:19:86","nodeType":"VariableDeclaration","scope":62315,"src":"4951:32:86","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62291,"name":"bytes","nodeType":"ElementaryTypeName","src":"4951:5:86","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":62298,"initialValue":{"arguments":[{"hexValue":"6d696e74506f7274666f6c696f286164647265737329","id":62295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5010:24:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_9026485395d48d96cc4cb7fee805e1958be51f1acfd0b53dbb5e516605b62a57","typeString":"literal_string \"mintPortfolio(address)\""},"value":"mintPortfolio(address)"},{"id":62296,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62280,"src":"5036:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9026485395d48d96cc4cb7fee805e1958be51f1acfd0b53dbb5e516605b62a57","typeString":"literal_string \"mintPortfolio(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62293,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4986:3:86","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4990:19:86","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4986:23:86","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4986:54:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4951:89:86"},{"assignments":[62300],"declarations":[{"constant":false,"id":62300,"mutability":"mutable","name":"success_","nameLocation":"5055:8:86","nodeType":"VariableDeclaration","scope":62315,"src":"5050:13:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":62299,"name":"bool","nodeType":"ElementaryTypeName","src":"5050:4:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":62309,"initialValue":{"arguments":[{"hexValue":"506f7274666f6c696f","id":62302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5091:11:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_fd3b1928a8727788d0ac8b2a5900c746ebf017d02946781036527a9d1bf308b5","typeString":"literal_string \"Portfolio\""},"value":"Portfolio"},{"hexValue":"30","id":62303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5104:1:86","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":62304,"name":"createPortfolioData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62292,"src":"5107:19:86","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":62305,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"5128:4:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":62306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5133:9:86","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"5128:14:86","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":62307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5143:4:86","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"5128:19:86","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fd3b1928a8727788d0ac8b2a5900c746ebf017d02946781036527a9d1bf308b5","typeString":"literal_string \"Portfolio\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":62301,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"5066:24:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":62308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:82:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5050:98:86"},{"expression":{"arguments":[{"id":62311,"name":"success_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62300,"src":"5166:8:86","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a206d696e74506f7274666f6c696f206661696c6564","id":62312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5176:27:86","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ca22dfa3589548b12b2aca6a788a14efd0d6eb09b8e49fa6ae93f3db837a292","typeString":"literal_string \"ERR: mintPortfolio failed\""},"value":"ERR: mintPortfolio failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9ca22dfa3589548b12b2aca6a788a14efd0d6eb09b8e49fa6ae93f3db837a292","typeString":"literal_string \"ERR: mintPortfolio failed\""}],"id":62310,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5158:7:86","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5158:46:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62314,"nodeType":"ExpressionStatement","src":"5158:46:86"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mintPortfolio","nameLocation":"4842:14:86","parameters":{"id":62281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62280,"mutability":"mutable","name":"to_","nameLocation":"4865:3:86","nodeType":"VariableDeclaration","scope":62316,"src":"4857:11:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62279,"name":"address","nodeType":"ElementaryTypeName","src":"4857:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4856:13:86"},"returnParameters":{"id":62282,"nodeType":"ParameterList","parameters":[],"src":"4878:0:86"},"scope":62336,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":62335,"nodeType":"FunctionDefinition","src":"5217:148:86","nodes":[],"body":{"id":62334,"nodeType":"Block","src":"5290:75:86","nodes":[],"statements":[{"expression":{"arguments":[{"id":62327,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62318,"src":"5325:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62324,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"5300:8:86","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5309:15:86","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"5300:24:86","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5300:29:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62329,"nodeType":"ExpressionStatement","src":"5300:29:86"},{"expression":{"arguments":[{"id":62331,"name":"to_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62318,"src":"5354:3:86","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62330,"name":"_mintPortfolio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62316,"src":"5339:14:86","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":62332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5339:19:86","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62333,"nodeType":"ExpressionStatement","src":"5339:19:86"}]},"functionSelector":"90264853","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":62321,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"5271:17:86","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":62322,"kind":"modifierInvocation","modifierName":{"id":62320,"name":"onlyRole","nameLocations":["5262:8:86"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"5262:8:86"},"nodeType":"ModifierInvocation","src":"5262:27:86"}],"name":"mintPortfolio","nameLocation":"5226:13:86","parameters":{"id":62319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62318,"mutability":"mutable","name":"to_","nameLocation":"5248:3:86","nodeType":"VariableDeclaration","scope":62335,"src":"5240:11:86","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62317,"name":"address","nodeType":"ElementaryTypeName","src":"5240:7:86","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5239:13:86"},"returnParameters":{"id":62323,"nodeType":"ParameterList","parameters":[],"src":"5290:0:86"},"scope":62336,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":61871,"name":"BlueprintBase","nameLocations":["402:13:86"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"402:13:86"},"id":61872,"nodeType":"InheritanceSpecifier","src":"402:13:86"}],"canonicalName":"LoanBlueprint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62336,71548,67625,67552,71343,71416,66682],"name":"LoanBlueprint","nameLocation":"385:13:86","scope":62337,"usedErrors":[],"usedEvents":[74060,74066,74080,74086]}],"license":"MIT"},"id":86}
Protection Blueprint
0x38a250cE1203994BAFDa940ac551FF596C57deC5
{"abi":[{"type":"constructor","inputs":[{"name":"concreteStorage_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ACL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_LENDER_MARKET","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_CONCRETE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_MASTERVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_PORTFOLIO","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_STREAMVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_ETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_USDC","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_WETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CONCRETE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_CLAIM_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_LOAN_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PORTFOLIO_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PROTECTION_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_RECEIPT_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_REWARDS_TREASURY","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_STAKING_CONTRACT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_TOKEN_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"MODULE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER_NAME_MODULES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_POSITION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ROLE_NAME_USER_TO_EXIST","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_DURATION_AND_REWARDS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_RECEIPT_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"SUDO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_CLAIM","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTIONID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_UPDATES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_BORROWDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANUPDATE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_PORTFOLIOID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"executeActionTransaction","inputs":[{"name":"actionName_","type":"string","internalType":"string"},{"name":"value_","type":"uint256","internalType":"uint256"},{"name":"data_","type":"bytes","internalType":"bytes"},{"name":"operation_","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getActionAddress","inputs":[{"name":"actionName_","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setProtectionData","inputs":[{"name":"protectionInfo_","type":"bytes","internalType":"bytes"},{"name":"protectionUpdateData","type":"bytes","internalType":"bytes"},{"name":"protectionFinanicialTermsData_","type":"bytes","internalType":"bytes"},{"name":"user_","type":"address","internalType":"address"},{"name":"loanId_","type":"uint256","internalType":"uint256"},{"name":"openingFee_","type":"uint256","internalType":"uint256"},{"name":"token_","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateLoanInfo","inputs":[{"name":"loanInfo_","type":"bytes","internalType":"bytes"},{"name":"user_","type":"address","internalType":"address"},{"name":"loanId_","type":"uint256","internalType":"uint256"},{"name":"updateField","type":"uint8","internalType":"enum ILoan.UpdateField"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ProtectionAddedToLoan","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"loanId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protectionInfo","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ProtectionFinancialTermsDataSet","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"loanId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protectionFinancialTermsData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"ProtectionUpdateDataSet","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"loanId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"protectionUpdateData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TokenTransferredToVault","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"vault","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b506040516200390a3803806200390a83398101604081905262000034916200034f565b808080604051602001620000569067141493d513d0d3d360c21b815260080190565b60408051601f1981840301815291905280516020909101206001600160a01b038216620000d65760405162461bcd60e51b815260206004820152602360248201527f4552523a2053746f7261676520616464726573732063616e6e6f74206265207a60448201526265726f60e81b60648201526084015b60405180910390fd5b6001600160e01b031981166200012f5760405162461bcd60e51b815260206004820152601d60248201527f4552523a204e616d6573706163652063616e6e6f74206265207a65726f0000006044820152606401620000cd565b6001600160a01b039091166080526001600160e01b03191660a05250604080518082018252601681527f416464726573732e4d616e616765722e416374696f6e000000000000000000006020808301919091529151600092620001c49291620001ae91016020808252600190820152601f60fa1b604082015260600190565b60408051601f19818403018152919052620002c3565b905060006080516001600160a01b03166321f8a721836040518263ffffffff1660e01b8152600401620001f991815260200190565b602060405180830381865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d91906200034f565b604051632f47185360e11b81526001600160a01b038216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156200029457600080fd5b505af4158015620002a9573d6000803e3d6000fd5b505050506001600160a01b031660c052506200041e915050565b60a051604051631ed43b8b60e21b815260009173__$cb588f1a84862ec6179da8c4e68bd890a8$__91637b50ee2c91620003049187908790600401620003c2565b602060405180830381865af415801562000322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000348919062000404565b9392505050565b6000602082840312156200036257600080fd5b81516001600160a01b03811681146200034857600080fd5b6000815180845260005b81811015620003a25760208185018101518683018201520162000384565b506000602082860101526020601f19601f83011685010191505092915050565b63ffffffff60e01b84168152606060208201526000620003e660608301856200037a565b8281036040840152620003fa81856200037a565b9695505050505050565b6000602082840312156200041757600080fd5b5051919050565b60805160a05160c0516134a06200046a600039600081816118430152611fdf015260006120a80152600081816111640152818161168e01528181611b060152612a5201526134a06000f3fe608060405234801561001057600080fd5b50600436106103e95760003560e01c80638b3e04711161021a578063be22fa1e11610135578063d88597de116100c8578063e642ad3411610097578063ec11384a1161007c578063ec11384a14610dd9578063f61e60f214610e15578063ffbf516314610e5157600080fd5b8063e642ad3414610d95578063eaca386414610dd157600080fd5b8063d88597de14610d02578063dbd55fb314610d3e578063e107b36b14610d46578063e51a3bab14610d5957600080fd5b8063ccca891111610104578063ccca891114610c46578063d017d35714610c4e578063d15263d314610c8a578063d83205c014610cc657600080fd5b8063be22fa1e14610bbe578063c414d4f914610bc6578063c5ad787914610bce578063ca6d5e3314610c0a57600080fd5b80639e5f8542116101ad578063aacb7f341161017c578063aacb7f3414610b02578063af895a3b14610b0a578063b70855fb14610b46578063ba9a08d714610b8257600080fd5b80639e5f854214610ab6578063a2fd43c514610abe578063a5be606314610ac6578063a652cb801461041e57600080fd5b806391aab3e4116101e957806391aab3e414610a3657806391b9b82714610a7257806395789e1c1461049e5780639d18526414610a7a57600080fd5b80638b3e0471146109c75780638b40da7d14610a035780638c3e62b614610a0b5780638d7e9e9414610a1357600080fd5b80635e61dc381161030a5780636a0b3f641161029d5780637a25c9d31161026c5780637a25c9d3146108fe5780637b6a4ce61461093a5780637d49df3b1461094f5780637d95de8e1461098b57600080fd5b80636a0b3f641461080e578063724348ab1461084a578063739baf491461088657806379c52aca146108c257600080fd5b806362a4c3df116102d957806362a4c3df14610752578063638bf74f1461078e578063678df18f146107ca578063697e744c1461080657600080fd5b80635e61dc38146106965780635f39ca221461069e578063608dade9146106da57806361945bfc1461071657600080fd5b80632a0f4d6b1161038257806342ff308b1161035157806342ff308b146105da578063430c6fe61461061657806359dcf3f6146106525780635e2092491461068e57600080fd5b80632a0f4d6b1461051e5780632d1da17e14610526578063420ea36014610562578063423ac8d91461059e57600080fd5b80630e494332116103be5780630e4943321461046257806325889b221461049e57806326026d18146104a6578063264c1356146104e257600080fd5b806272e140146103ee578062a9d96e14610409578063057afbfe1461041e578063094d3a341461045a575b600080fd5b6103f6610e89565b6040519081526020015b60405180910390f35b610411610eee565b6040516104009190612d4b565b6104116040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b6103f6610f0a565b6104116040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b6103f6610f3b565b6104116040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6104116040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b6103f6610f6c565b6104116040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6104116040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6104116040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6104116040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6104116040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6104116040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b6103f6610f9d565b610411610fce565b6104116040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6104116040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6104116040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6104116040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6104116040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6104116040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b610411610fea565b6104116040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b6104116040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6104116040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6104116040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6104116040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b61094d610948366004612dcc565b611006565b005b6104116040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6104116040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6104116040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b6103f66114db565b6103f661150c565b610a26610a21366004612f27565b61153d565b6040519015158152602001610400565b6104116040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b6103f6611899565b6104116040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b6104116118ca565b6104116118e6565b6104116040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b610411611902565b6104116040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6104116040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6104116040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b61041161191e565b61041161193a565b6104116040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6104116040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b6103f6611956565b6104116040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6104116040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6104116040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6104116040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b6103f6611987565b61094d610d54366004612fbf565b6119b8565b6104116040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6104116040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b610411611f83565b6104116040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6104116040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610e64610e5f366004613092565b611f9f565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610400565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b60405180606001604052806024815260200161347c6024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610eb6565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610eb6565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610eb6565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610eb6565b6040518060600160405280602981526020016134036029913981565b6040518060600160405280602381526020016133e06023913981565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600060405160200161109c907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611132916060015b60405160208183030381529060405261205d565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906130cf565b611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156112ee57600080fd5b505af4158015611302573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810188905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561136857600080fd5b505af415801561137c573d6000803e3d6000fd5b50505050600088888888886003811115611398576113986130f1565b6040516024016113ac959493929190613169565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7b6a4ce6000000000000000000000000000000000000000000000000000000001790528151808301909252601482527f5570646174654c6f616e496e666f416374696f6e000000000000000000000000908201529091506000906114669082848161153d565b9050806114cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552523a205570646174654c6f616e496e666f416374696f6e206661696c6564604482015260640161126c565b50505050505050505050565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610eb6565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610eb6565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016115d6907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e4578697374000000000000000000000000848301528251918201869052339282019290925290925060009161165c9160600161111e565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e91906130cf565b61179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161126c565b6000883089898960018111156117b2576117b26130f1565b6040516024016117c69594939291906131b3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b0500000000000000000000000000000000000000000000000000000000179052905061188c7f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61211c565b9998505050505050505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610eb6565b6040518060600160405280602581526020016133516025913981565b6040518060600160405280602881526020016133766028913981565b6040518060600160405280602b8152602001613451602b913981565b6040518060600160405280602181526020016133bf6021913981565b60405180606001604052806025815260200161342c6025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610eb6565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610eb6565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611a4e907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611ad49160600161111e565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8691906130cf565b611c12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161126c565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8816600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015611c8b57600080fd5b505af4158015611c9f573d6000803e3d6000fd5b50506040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__9250635e8e30a6915060240160006040518083038186803b158015611d1c57600080fd5b505af4158015611d30573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810189905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015611d9657600080fd5b505af4158015611daa573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff167fa9f8953f0005f5b463f828868114f8c8cb8ff0d1c4aa4b77bf5dc66ac193a84e878f8f604051611df893929190613210565b60405180910390a260008d8d8989604051602401611e19949392919061322a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2e397b48000000000000000000000000000000000000000000000000000000001790528151808301909252601782527f53657450726f74656374696f6e44617461416374696f6e00000000000000000090820152909150600090611ed39082848161153d565b905080611f62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4552523a2053657450726f74656374696f6e44617461416374696f6e2066616960448201527f6c65640000000000000000000000000000000000000000000000000000000000606482015260840161126c565b611f728d8d8d8d8d8d8d8d6121f9565b505050505050505050505050505050565b60405180606001604052806024815260200161332d6024913981565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb906120169085903090600401613267565b602060405180830381865afa158015612033573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612057919061329f565b92915050565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c906120d4907f000000000000000000000000000000000000000000000000000000000000000090879087906004016132bc565b602060405180830381865af41580156120f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121159190613313565b9392505050565b600080836001811115612131576121316130f1565b148061214e5750600183600181111561214c5761214c6130f1565b145b6121b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e20747970650000000000604482015260640161126c565b60018360018111156121c8576121c86130f1565b036121e0576000808551602087018986f490506121f0565b600080855160208701888a87f190505b95945050505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561227257600080fd5b505af4158015612286573d6000803e3d6000fd5b50506040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__9250635e8e30a6915060240160006040518083038186803b15801561230357600080fd5b505af4158015612317573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561237d57600080fd5b505af4158015612391573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f1ed0131c01f8fcbce4f174221a307f22c9b5ae6bd2d31ff53d92c0f3c386f188848a8a6040516123df93929190613210565b60405180910390a2600088888686604051602401612400949392919061322a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fbe88fd18000000000000000000000000000000000000000000000000000000001790528151808301909252601d82527f53657450726f74656374696f6e557064617465416374696f6e44617461000000908201529091506000906124ba9082848161153d565b905080612549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552523a2053657450726f74656374696f6e557064617465416374696f6e446160448201527f7461206661696c65640000000000000000000000000000000000000000000000606482015260840161126c565b6114cf8888888888886040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156125cb57600080fd5b505af41580156125df573d6000803e3d6000fd5b50506040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__9250635e8e30a6915060240160006040518083038186803b15801561265c57600080fd5b505af4158015612670573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b1580156126d657600080fd5b505af41580156126ea573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167fda77d45035101d79fd708a8b23d24a54354524e454afcb5e1f4e2431d23ed01384888860405161273893929190613210565b60405180910390a2600086868686604051602401612759949392919061322a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f19d77c1c0000000000000000000000000000000000000000000000000000000017905281516060810190925260218083529293506000926127fa929161339e90830139600084600061153d565b905080612889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552523a2053657450726f74656374696f6e46696e616e6369616c5465726d7360448201527f416374696f6e206661696c656400000000000000000000000000000000000000606482015260840161126c565b61289484848861289e565b5050505050505050565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b15801561290057600080fd5b505af4158015612914573d6000803e3d6000fd5b50506040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__9250635e8e30a6915060240160006040518083038186803b15801561299157600080fd5b505af41580156129a5573d6000803e3d6000fd5b505050506000612a086040518060600160405280602381526020016133e06023913960405160200161111e9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015612a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abd919061329f565b905060008190508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f4a7876e2407550db793d3ffd872c0e3d4e87f40fb60bc7adada152e2766d52f089604051612b3a91815260200190565b60405180910390a46040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526024820188905286919082169063095ea7b3906044016020604051808303816000875af1158015612bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bde91906130cf565b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820189905282169063a9059cbb906044016020604051808303816000875af1158015612c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7891906130cf565b612cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552523a205472616e73666572546f6b656e6661696c65640000000000000000604482015260640161126c565b50505050505050565b6000815180845260005b81811015612d0d57602081850181015186830182015201612cf1565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006121156020830184612ce7565b60008083601f840112612d7057600080fd5b50813567ffffffffffffffff811115612d8857600080fd5b602083019150836020828501011115612da057600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114612dc957600080fd5b50565b600080600080600060808688031215612de457600080fd5b853567ffffffffffffffff811115612dfb57600080fd5b612e0788828901612d5e565b9096509450506020860135612e1b81612da7565b925060408601359150606086013560048110612e3657600080fd5b809150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115612e8e57612e8e612e44565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612ed457612ed4612e44565b81604052809350858152868686011115612eed57600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112612f1857600080fd5b61211583833560208501612e73565b60008060008060808587031215612f3d57600080fd5b843567ffffffffffffffff80821115612f5557600080fd5b612f6188838901612f07565b9550602087013594506040870135915080821115612f7e57600080fd5b508501601f81018713612f9057600080fd5b612f9f87823560208401612e73565b925050606085013560028110612fb457600080fd5b939692955090935050565b60008060008060008060008060008060e08b8d031215612fde57600080fd5b8a3567ffffffffffffffff80821115612ff657600080fd5b6130028e838f01612d5e565b909c509a5060208d013591508082111561301b57600080fd5b6130278e838f01612d5e565b909a50985060408d013591508082111561304057600080fd5b5061304d8d828e01612d5e565b90975095505060608b013561306181612da7565b935060808b0135925060a08b0135915060c08b013561307f81612da7565b809150509295989b9194979a5092959850565b6000602082840312156130a457600080fd5b813567ffffffffffffffff8111156130bb57600080fd5b6130c784828501612f07565b949350505050565b6000602082840312156130e157600080fd5b8151801515811461211557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600061317d608083018789613120565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260ff1660609091015292915050565b60a0815260006131c660a0830188612ce7565b73ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015282810360608401526131fa8186612ce7565b91505060ff831660808301529695505050505050565b8381526040602082015260006121f0604083018486613120565b60608152600061323e606083018688613120565b73ffffffffffffffffffffffffffffffffffffffff949094166020830152506040015292915050565b60408152600061327a6040830185612ce7565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b6000602082840312156132b157600080fd5b815161211581612da7565b7fffffffff00000000000000000000000000000000000000000000000000000000841681526060602082015260006132f76060830185612ce7565b82810360408401526133098185612ce7565b9695505050505050565b60006020828403121561332557600080fd5b505191905056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e7453657450726f74656374696f6e46696e616e6369616c5465726d73416374696f6e416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"542:4419:87:-:0;;;594:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;646:16;536::139;458::108;493:28;;;;;;-1:-1:-1;;;511:23:249;;559:1;550:11;;309:258;493:28:108;;;;-1:-1:-1;;493:28:108;;;;;;;;;483:39;;493:28;483:39;;;;-1:-1:-1;;;;;897:29:138;;889:77;;;;-1:-1:-1;;;889:77:138;;774:2:249;889:77:138;;;756:21:249;813:2;793:18;;;786:30;852:34;832:18;;;825:62;-1:-1:-1;;;903:18:249;;;896:33;946:19;;889:77:138;;;;;;;;;-1:-1:-1;;;;;;984:23:138;;976:65;;;;-1:-1:-1;;;976:65:138;;1178:2:249;976:65:138;;;1160:21:249;1217:2;1197:18;;;1190:30;1256:31;1236:18;;;1229:59;1305:18;;976:65:138;:353:249;:65:138;-1:-1:-1;;;;;1051:51:138;;;;;-1:-1:-1;;;;;;1112:22:138;;;-1:-1:-1;588:22:139::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;;612:15;;564:11:::1;::::0;578:50:::1;::::0;588:22;612:15:::1;::::0;::::1;1536:2:249::0;1518:21;;;1575:1;1555:18;;;1548:29;-1:-1:-1;;;1608:2:249;1593:18;;1586:31;1649:2;1634:18;;1334:324;612:15:139::1;;::::0;;-1:-1:-1;;612:15:139;;::::1;::::0;;;;;;578:9:::1;:50::i;:::-;564:64;;638:12;653:15;;-1:-1:-1::0;;;;;653:26:139::1;;680:3;653:31;;;;;;;;;;;;;1809:25:249::0;;1797:2;1782:18;;1663:177;653:31:139::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:30;::::0;-1:-1:-1;;;694:30:139;;-1:-1:-1;;;;;2017:32:249;;694:30:139::1;::::0;::::1;1999:51:249::0;638:46:139;;-1:-1:-1;694:8:139::1;::::0;:24:::1;::::0;1972:18:249;;694:30:139::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;734:42:139::1;;::::0;-1:-1:-1;542:4419:87;;-1:-1:-1;;542:4419:87;1180:170:138;1316:9;;1292:51;;-1:-1:-1;;;1292:51:138;;1266:7;;1292:13;;:23;;:51;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:138:o;14:290:249:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:249;;214:42;;204:70;;270:1;267;260:12;2061:423;2103:3;2141:5;2135:12;2168:6;2163:3;2156:19;2193:1;2203:162;2217:6;2214:1;2211:13;2203:162;;;2279:4;2335:13;;;2331:22;;2325:29;2307:11;;;2303:20;;2296:59;2232:12;2203:162;;;2207:3;2410:1;2403:4;2394:6;2389:3;2385:16;2381:27;2374:38;2473:4;2466:2;2462:7;2457:2;2449:6;2445:15;2441:29;2436:3;2432:39;2428:50;2421:57;;;2061:423;;;;:::o;2489:485::-;2739:10;2734:3;2730:20;2722:6;2718:33;2707:9;2700:52;2788:2;2783;2772:9;2768:18;2761:30;2681:4;2814:45;2855:2;2844:9;2840:18;2832:6;2814:45;:::i;:::-;2907:9;2899:6;2895:22;2890:2;2879:9;2875:18;2868:50;2935:33;2961:6;2953;2935:33;:::i;:::-;2927:41;2489:485;-1:-1:-1;;;;;;2489:485:249:o;2979:184::-;3049:6;3102:2;3090:9;3081:7;3077:23;3073:32;3070:52;;;3118:1;3115;3108:12;3070:52;-1:-1:-1;3141:16:249;;2979:184;-1:-1:-1;2979:184:249:o;:::-;542:4419:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/Security.sol":{"Security":[{"start":606,"length":20},{"start":5923,"length":20},{"start":6044,"length":20},{"start":8384,"length":20},{"start":8527,"length":20},{"start":8650,"length":20},{"start":9895,"length":20},{"start":10038,"length":20},{"start":10161,"length":20},{"start":10752,"length":20},{"start":10895,"length":20},{"start":11018,"length":20},{"start":11574,"length":20},{"start":11716,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":728,"length":20},{"start":9458,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106103e95760003560e01c80638b3e04711161021a578063be22fa1e11610135578063d88597de116100c8578063e642ad3411610097578063ec11384a1161007c578063ec11384a14610dd9578063f61e60f214610e15578063ffbf516314610e5157600080fd5b8063e642ad3414610d95578063eaca386414610dd157600080fd5b8063d88597de14610d02578063dbd55fb314610d3e578063e107b36b14610d46578063e51a3bab14610d5957600080fd5b8063ccca891111610104578063ccca891114610c46578063d017d35714610c4e578063d15263d314610c8a578063d83205c014610cc657600080fd5b8063be22fa1e14610bbe578063c414d4f914610bc6578063c5ad787914610bce578063ca6d5e3314610c0a57600080fd5b80639e5f8542116101ad578063aacb7f341161017c578063aacb7f3414610b02578063af895a3b14610b0a578063b70855fb14610b46578063ba9a08d714610b8257600080fd5b80639e5f854214610ab6578063a2fd43c514610abe578063a5be606314610ac6578063a652cb801461041e57600080fd5b806391aab3e4116101e957806391aab3e414610a3657806391b9b82714610a7257806395789e1c1461049e5780639d18526414610a7a57600080fd5b80638b3e0471146109c75780638b40da7d14610a035780638c3e62b614610a0b5780638d7e9e9414610a1357600080fd5b80635e61dc381161030a5780636a0b3f641161029d5780637a25c9d31161026c5780637a25c9d3146108fe5780637b6a4ce61461093a5780637d49df3b1461094f5780637d95de8e1461098b57600080fd5b80636a0b3f641461080e578063724348ab1461084a578063739baf491461088657806379c52aca146108c257600080fd5b806362a4c3df116102d957806362a4c3df14610752578063638bf74f1461078e578063678df18f146107ca578063697e744c1461080657600080fd5b80635e61dc38146106965780635f39ca221461069e578063608dade9146106da57806361945bfc1461071657600080fd5b80632a0f4d6b1161038257806342ff308b1161035157806342ff308b146105da578063430c6fe61461061657806359dcf3f6146106525780635e2092491461068e57600080fd5b80632a0f4d6b1461051e5780632d1da17e14610526578063420ea36014610562578063423ac8d91461059e57600080fd5b80630e494332116103be5780630e4943321461046257806325889b221461049e57806326026d18146104a6578063264c1356146104e257600080fd5b806272e140146103ee578062a9d96e14610409578063057afbfe1461041e578063094d3a341461045a575b600080fd5b6103f6610e89565b6040519081526020015b60405180910390f35b610411610eee565b6040516104009190612d4b565b6104116040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b6103f6610f0a565b6104116040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b6103f6610f3b565b6104116040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6104116040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b6103f6610f6c565b6104116040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6104116040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6104116040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6104116040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6104116040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6104116040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b6103f6610f9d565b610411610fce565b6104116040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6104116040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6104116040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6104116040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6104116040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6104116040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b610411610fea565b6104116040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b6104116040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6104116040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6104116040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6104116040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b61094d610948366004612dcc565b611006565b005b6104116040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6104116040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6104116040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b6103f66114db565b6103f661150c565b610a26610a21366004612f27565b61153d565b6040519015158152602001610400565b6104116040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b6103f6611899565b6104116040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b6104116118ca565b6104116118e6565b6104116040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b610411611902565b6104116040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6104116040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6104116040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b61041161191e565b61041161193a565b6104116040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6104116040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b6103f6611956565b6104116040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6104116040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6104116040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6104116040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b6103f6611987565b61094d610d54366004612fbf565b6119b8565b6104116040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6104116040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b610411611f83565b6104116040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6104116040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610e64610e5f366004613092565b611f9f565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610400565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b60405180606001604052806024815260200161347c6024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610eb6565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610eb6565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610eb6565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610eb6565b6040518060600160405280602981526020016134036029913981565b6040518060600160405280602381526020016133e06023913981565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600060405160200161109c907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611132916060015b60405160208183030381529060405261205d565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156111c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e491906130cf565b611275576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156112ee57600080fd5b505af4158015611302573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810188905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561136857600080fd5b505af415801561137c573d6000803e3d6000fd5b50505050600088888888886003811115611398576113986130f1565b6040516024016113ac959493929190613169565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7b6a4ce6000000000000000000000000000000000000000000000000000000001790528151808301909252601482527f5570646174654c6f616e496e666f416374696f6e000000000000000000000000908201529091506000906114669082848161153d565b9050806114cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552523a205570646174654c6f616e496e666f416374696f6e206661696c6564604482015260640161126c565b50505050505050505050565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610eb6565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610eb6565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016115d6907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e4578697374000000000000000000000000848301528251918201869052339282019290925290925060009161165c9160600161111e565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156116ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170e91906130cf565b61179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161126c565b6000883089898960018111156117b2576117b26130f1565b6040516024016117c69594939291906131b3565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b0500000000000000000000000000000000000000000000000000000000179052905061188c7f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61211c565b9998505050505050505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610eb6565b6040518060600160405280602581526020016133516025913981565b6040518060600160405280602881526020016133766028913981565b6040518060600160405280602b8152602001613451602b913981565b6040518060600160405280602181526020016133bf6021913981565b60405180606001604052806025815260200161342c6025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610eb6565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610eb6565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611a4e907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611ad49160600161111e565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8691906130cf565b611c12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161126c565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8816600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015611c8b57600080fd5b505af4158015611c9f573d6000803e3d6000fd5b50506040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__9250635e8e30a6915060240160006040518083038186803b158015611d1c57600080fd5b505af4158015611d30573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810189905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015611d9657600080fd5b505af4158015611daa573d6000803e3d6000fd5b505050508673ffffffffffffffffffffffffffffffffffffffff167fa9f8953f0005f5b463f828868114f8c8cb8ff0d1c4aa4b77bf5dc66ac193a84e878f8f604051611df893929190613210565b60405180910390a260008d8d8989604051602401611e19949392919061322a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2e397b48000000000000000000000000000000000000000000000000000000001790528151808301909252601782527f53657450726f74656374696f6e44617461416374696f6e00000000000000000090820152909150600090611ed39082848161153d565b905080611f62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4552523a2053657450726f74656374696f6e44617461416374696f6e2066616960448201527f6c65640000000000000000000000000000000000000000000000000000000000606482015260840161126c565b611f728d8d8d8d8d8d8d8d6121f9565b505050505050505050505050505050565b60405180606001604052806024815260200161332d6024913981565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb906120169085903090600401613267565b602060405180830381865afa158015612033573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612057919061329f565b92915050565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c906120d4907f000000000000000000000000000000000000000000000000000000000000000090879087906004016132bc565b602060405180830381865af41580156120f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121159190613313565b9392505050565b600080836001811115612131576121316130f1565b148061214e5750600183600181111561214c5761214c6130f1565b145b6121b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e20747970650000000000604482015260640161126c565b60018360018111156121c8576121c86130f1565b036121e0576000808551602087018986f490506121f0565b600080855160208701888a87f190505b95945050505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561227257600080fd5b505af4158015612286573d6000803e3d6000fd5b50506040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__9250635e8e30a6915060240160006040518083038186803b15801561230357600080fd5b505af4158015612317573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561237d57600080fd5b505af4158015612391573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167f1ed0131c01f8fcbce4f174221a307f22c9b5ae6bd2d31ff53d92c0f3c386f188848a8a6040516123df93929190613210565b60405180910390a2600088888686604051602401612400949392919061322a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fbe88fd18000000000000000000000000000000000000000000000000000000001790528151808301909252601d82527f53657450726f74656374696f6e557064617465416374696f6e44617461000000908201529091506000906124ba9082848161153d565b905080612549576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552523a2053657450726f74656374696f6e557064617465416374696f6e446160448201527f7461206661696c65640000000000000000000000000000000000000000000000606482015260840161126c565b6114cf8888888888886040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156125cb57600080fd5b505af41580156125df573d6000803e3d6000fd5b50506040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__9250635e8e30a6915060240160006040518083038186803b15801561265c57600080fd5b505af4158015612670573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b1580156126d657600080fd5b505af41580156126ea573d6000803e3d6000fd5b505050508373ffffffffffffffffffffffffffffffffffffffff167fda77d45035101d79fd708a8b23d24a54354524e454afcb5e1f4e2431d23ed01384888860405161273893929190613210565b60405180910390a2600086868686604051602401612759949392919061322a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f19d77c1c0000000000000000000000000000000000000000000000000000000017905281516060810190925260218083529293506000926127fa929161339e90830139600084600061153d565b905080612889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552523a2053657450726f74656374696f6e46696e616e6369616c5465726d7360448201527f416374696f6e206661696c656400000000000000000000000000000000000000606482015260840161126c565b61289484848861289e565b5050505050505050565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b15801561290057600080fd5b505af4158015612914573d6000803e3d6000fd5b50506040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__9250635e8e30a6915060240160006040518083038186803b15801561299157600080fd5b505af41580156129a5573d6000803e3d6000fd5b505050506000612a086040518060600160405280602381526020016133e06023913960405160200161111e9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015612a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abd919061329f565b905060008190508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f4a7876e2407550db793d3ffd872c0e3d4e87f40fb60bc7adada152e2766d52f089604051612b3a91815260200190565b60405180910390a46040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301526024820188905286919082169063095ea7b3906044016020604051808303816000875af1158015612bba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bde91906130cf565b506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820189905282169063a9059cbb906044016020604051808303816000875af1158015612c54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7891906130cf565b612cde576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552523a205472616e73666572546f6b656e6661696c65640000000000000000604482015260640161126c565b50505050505050565b6000815180845260005b81811015612d0d57602081850181015186830182015201612cf1565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006121156020830184612ce7565b60008083601f840112612d7057600080fd5b50813567ffffffffffffffff811115612d8857600080fd5b602083019150836020828501011115612da057600080fd5b9250929050565b73ffffffffffffffffffffffffffffffffffffffff81168114612dc957600080fd5b50565b600080600080600060808688031215612de457600080fd5b853567ffffffffffffffff811115612dfb57600080fd5b612e0788828901612d5e565b9096509450506020860135612e1b81612da7565b925060408601359150606086013560048110612e3657600080fd5b809150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115612e8e57612e8e612e44565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612ed457612ed4612e44565b81604052809350858152868686011115612eed57600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112612f1857600080fd5b61211583833560208501612e73565b60008060008060808587031215612f3d57600080fd5b843567ffffffffffffffff80821115612f5557600080fd5b612f6188838901612f07565b9550602087013594506040870135915080821115612f7e57600080fd5b508501601f81018713612f9057600080fd5b612f9f87823560208401612e73565b925050606085013560028110612fb457600080fd5b939692955090935050565b60008060008060008060008060008060e08b8d031215612fde57600080fd5b8a3567ffffffffffffffff80821115612ff657600080fd5b6130028e838f01612d5e565b909c509a5060208d013591508082111561301b57600080fd5b6130278e838f01612d5e565b909a50985060408d013591508082111561304057600080fd5b5061304d8d828e01612d5e565b90975095505060608b013561306181612da7565b935060808b0135925060a08b0135915060c08b013561307f81612da7565b809150509295989b9194979a5092959850565b6000602082840312156130a457600080fd5b813567ffffffffffffffff8111156130bb57600080fd5b6130c784828501612f07565b949350505050565b6000602082840312156130e157600080fd5b8151801515811461211557600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60808152600061317d608083018789613120565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260ff1660609091015292915050565b60a0815260006131c660a0830188612ce7565b73ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015282810360608401526131fa8186612ce7565b91505060ff831660808301529695505050505050565b8381526040602082015260006121f0604083018486613120565b60608152600061323e606083018688613120565b73ffffffffffffffffffffffffffffffffffffffff949094166020830152506040015292915050565b60408152600061327a6040830185612ce7565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b6000602082840312156132b157600080fd5b815161211581612da7565b7fffffffff00000000000000000000000000000000000000000000000000000000841681526060602082015260006132f76060830185612ce7565b82810360408401526133098185612ce7565b9695505050505050565b60006020828403121561332557600080fd5b505191905056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e7453657450726f74656374696f6e46696e616e6369616c5465726d73416374696f6e416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"542:4419:87:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:93:107;;;:::i;:::-;;;160:25:249;;;148:2;133:18;905:93:107;;;;;;;;4313:101:137;;;:::i;:::-;;;;;;;:::i;3382:80::-;;;;;;;;;;;;;;;;;;;;;812:87:107;;;:::i;560:76:137:-;;;;;;;;;;;;;;;;;;;;;1119:106:107;;;:::i;3124:78:137:-;;;;;;;;;;;;;;;;;;;;;3825:74;;;;;;;;;;;;;;;;;;;;;477:107:107;;;:::i;1749:93:137:-;;;;;;;;;;;;;;;;;;;;;1935:72;;;;;;;;;;;;;;;;;;;;;2407:70;;;;;;;;;;;;;;;;;;;;;278:76;;;;;;;;;;;;;;;;;;;;;2700:77;;;;;;;;;;;;;;;;;;;;;1848:81;;;;;;;;;;;;;;;;;;;;;374:97:107;;;:::i;3637:88:137:-;;;:::i;2314:87::-;;;;;;;;;;;;;;;;;;;;;3468:88;;;;;;;;;;;;;;;;;;;;;1068:85;;;;;;;;;;;;;;;;;;;;;1275:75;;;;;;;;;;;;;;;;;;;;;142:62;;;;;;;;;;;;;;;;;;;;;898:83;;;;;;;;;;;;;;;;;;;;;2947:87;;;:::i;3040:78::-;;;;;;;;;;;;;;;;;;;;;3932:58;;;;;;;;;;;;;;;;;;;;;1662:81;;;;;;;;;;;;;;;;;;;;;4138:68;;;;;;;;;;;;;;;;;;;;;2208:71;;;;;;;;;;;;;;;;;;;;;673:650:87;;;;;;:::i;:::-;;:::i;:::-;;987:75:137;;;;;;;;;;;;;;;;;;;;;745:66;;;;;;;;;;;;;;;;;;;;;3208:76;;;;;;;;;;;;;;;;;;;;;703:103:107;;;:::i;273:95::-;;;:::i;1000:637:139:-;;;;;;:::i;:::-;;:::i;:::-;;;4385:14:249;;4378:22;4360:41;;4348:2;4333:18;1000:637:139;4220:187:249;210:62:137;;;;;;;;;;;;;;;;;;;;;176:91:107;;;:::i;817:75:137:-;;;;;;;;;;;;;;;;;;;;;3731:88;;;:::i;2585:109::-;;;:::i;3996:60::-;;;;;;;;;;;;;;;;;;;;;1523:105;;;:::i;4616:78::-;;;;;;;;;;;;;;;;;;;;;1189:80;;;;;;;;;;;;;;;;;;;;;2097:72;;;;;;;;;;;;;;;;;;;;;2483:96;;;:::i;4478:::-;;;:::i;4062:70::-;;;;;;;;;;;;;;;;;;;;;360:80;;;;;;;;;;;;;;;;;;;;;590:107:107;;;:::i;2783:70:137:-;;;;;;;;;;;;;;;;;;;;;1452:65;;;;;;;;;;;;;;;;;;;;;642:73;;;;;;;;;;;;;;;;;;;;;3562:69;;;;;;;;;;;;;;;;;;;;;1231:87:107;;;:::i;1329:1033:87:-;;;;;;:::i;:::-;;:::i;2859:82:137:-;;;;;;;;;;;;;;;;;;;;;2013:78;;;;;;;;;;;;;;;;;;;;;1356:90;;;:::i;489:65::-;;;;;;;;;;;;;;;;;;;;;4212:69;;;;;;;;;;;;;;;;;;;;;822:172:139;;;;;;:::i;:::-;;:::i;:::-;;;6340:42:249;6328:55;;;6310:74;;6298:2;6283:18;822:172:139;6164:226:249;905:93:107;966:29;;6609:11:249;966:29:107;;;6597:24:249;6637:11;;966:29:107;;;;;;;;;;;;;956:40;;;;;;941:57;;;905:93;:::o;4313:101:137:-;;;;;;;;;;;;;;;;;;;:::o;812:87:107:-;870:26;;6873:8:249;870:26:107;;;6861:21:249;6898:11;;870:26:107;6659:256:249;1119:106:107;1185:37;;7134:19:249;1185:37:107;;;7122:32:249;7170:12;;1185:37:107;6920:268:249;477:107:107;545:36;;7407:18:249;545:36:107;;;7395:31:249;7442:12;;545:36:107;7193:267:249;374:97:107;435:33;;7679:15:249;435:33:107;;;7667:28:249;7711:12;;435:33:107;7465:264:249;3637:88:137;;;;;;;;;;;;;;;;;;;:::o;2947:87::-;;;;;;;;;;;;;;;;;;;:::o;673:650:87:-;1073:37:107;;7134:19:249;1073:37:107;;;7122:32:249;7170:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;7948:10:249;7936:23;;7984:1;7975:11;;7734:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;8171:25:249;;;795:10:108;8212:18:249;;;8205:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;8144:18:249;;777:29:108;;;;;;;;;;;;;742:9;:65::i;:::-;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;8783:2:249;817:84:108;;;8765:21:249;8822:2;8802:18;;;8795:30;8861:34;8841:18;;;8834:62;8932:3;8912:18;;;8905:31;8953:19;;817:84:108;;;;;;;;;891:31:87::1;::::0;;;;6340:42:249;6328:55;;891:31:87::1;::::0;::::1;6310:74:249::0;891:8:87::1;::::0;:24:::1;::::0;6283:18:249;;891:31:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;932:30:87::1;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;932:8:87::1;::::0;-1:-1:-1;932:21:87::1;::::0;-1:-1:-1;133:18:249;;932:30:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;972:27;1086:9;;1097:5;1104:7;1119:11;1113:18;;;;;;;;:::i;:::-;1002:139;;;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;;;;::::0;;1166:88;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;1002:139;;-1:-1:-1;;;1166:88:87::1;::::0;-1:-1:-1;1002:139:87;-1:-1:-1;1166:24:87::1;:88::i;:::-;1151:103;;1272:7;1264:52;;;::::0;::::1;::::0;;10653:2:249;1264:52:87::1;::::0;::::1;10635:21:249::0;;;10672:18;;;10665:30;10731:34;10711:18;;;10704:62;10783:18;;1264:52:87::1;10451:356:249::0;1264:52:87::1;881:442;;632:287:108::0;;673:650:87;;;;;;:::o;703:103:107:-;769:34;;11026:16:249;769:34:107;;;11014:29:249;11059:12;;769:34:107;10812:265:249;273:95:107;335:30;;11296:12:249;335:30:107;;;11284:25:249;11325:12;;335:30:107;11082:261:249;1000:637:139;1073:37:107;;7134:19:249;1073:37:107;;;7122:32:249;1230:12:139;;7170::249;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;7948:10:249;7936:23;;7984:1;7975:11;;7734:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;8171:25:249;;;795:10:108;8212:18:249;;;8205:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;8144:18:249;;777:29:108;7997:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;8783:2:249;817:84:108;;;8765:21:249;8822:2;8802:18;;;8795:30;8861:34;8841:18;;;8834:62;8932:3;8912:18;;;8905:31;8953:19;;817:84:108;8581:397:249;817:84:108;1258:24:139::1;1398:11;1431:4;1450:6;1470:5;1495:10;1489:17;;;;;;;;:::i;:::-;1285:231;;;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;;;::::0;;;-1:-1:-1;1536:94:139::1;1552:20;-1:-1:-1::0;1285:231:139;-1:-1:-1;1612:17:139::1;1536:7;:94::i;:::-;1526:104:::0;1000:637;-1:-1:-1;;;;;;;;;1000:637:139:o;176:91:107:-;236:28;;7948:10:249;236:28:107;;;7936:23:249;7975:11;;236:28:107;7734:258:249;3731:88:137;;;;;;;;;;;;;;;;;;;:::o;2585:109::-;;;;;;;;;;;;;;;;;;;:::o;1523:105::-;;;;;;;;;;;;;;;;;;;:::o;2483:96::-;;;;;;;;;;;;;;;;;;;:::o;4478:::-;;;;;;;;;;;;;;;;;;;:::o;590:107:107:-;658:36;;12220:18:249;658:36:107;;;12208:31:249;12255:12;;658:36:107;12006:267:249;1231:87:107;1289:26;;12492:8:249;1289:26:107;;;12480:21:249;12517:11;;1289:26:107;12278:256:249;1329:1033:87;1073:37:107;;7134:19:249;1073:37:107;;;7122:32:249;7170:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;7948:10:249;7936:23;;7984:1;7975:11;;7734:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;8171:25:249;;;795:10:108;8212:18:249;;;8205:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;8144:18:249;;777:29:108;7997:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;8783:2:249;817:84:108;;;8765:21:249;8822:2;8802:18;;;8795:30;8861:34;8841:18;;;8834:62;8932:3;8912:18;;;8905:31;8953:19;;817:84:108;8581:397:249;817:84:108;1670:31:87::1;::::0;;;;6340:42:249;6328:55;;1670:31:87::1;::::0;::::1;6310:74:249::0;1670:8:87::1;::::0;:24:::1;::::0;6283:18:249;;1670:31:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;1711:32:87::1;::::0;;;;6340:42:249;6328:55;;1711:32:87::1;::::0;::::1;6310:74:249::0;1711:8:87::1;::::0;-1:-1:-1;1711:24:87::1;::::0;-1:-1:-1;6283:18:249;;1711:32:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;1753:30:87::1;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;1753:8:87::1;::::0;-1:-1:-1;1753:21:87::1;::::0;-1:-1:-1;133:18:249;;1753:30:87::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1836:5;1798:70;;;1843:7;1852:15;;1798:70;;;;;;;;:::i;:::-;;;;;;;;1878:31;1992:15;;2009:5;2016:7;1924:100;;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;;;;::::0;;2049:95;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;1924:100;;-1:-1:-1;;;2049:95:87::1;::::0;-1:-1:-1;1924:100:87;-1:-1:-1;2049:24:87::1;:95::i;:::-;2034:110;;2162:7;2154:55;;;::::0;::::1;::::0;;13501:2:249;2154:55:87::1;::::0;::::1;13483:21:249::0;13540:2;13520:18;;;13513:30;13579:34;13559:18;;;13552:62;13650:5;13630:18;;;13623:33;13673:19;;2154:55:87::1;13299:399:249::0;2154:55:87::1;2219:136;2256:20;;2278:30;;2310:5;2317:7;2326:11;2339:6;2219:23;:136::i;:::-;1660:702;;632:287:108::0;;1329:1033:87;;;;;;;;;;;:::o;1356:90:137:-;;;;;;;;;;;;;;;;;;;:::o;822:172:139:-;922:65;;;;;896:7;;922:37;:20;:37;;;;:65;;960:11;;981:4;;922:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;915:72;822:172;-1:-1:-1;;822:172:139:o;1180:170:138:-;1292:51;;;;;1266:7;;1292:13;;:23;;:51;;1316:9;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:138:o;519:822:101:-;708:12;;757:10;:33;;;;;;;;:::i;:::-;;:78;;;-1:-1:-1;808:27:101;794:10;:41;;;;;;;;:::i;:::-;;757:78;736:152;;;;;;;15231:2:249;736:152:101;;;15213:21:249;15270:2;15250:18;;;15243:30;15309:29;15289:18;;;15282:57;15356:18;;736:152:101;15029:351:249;736:152:101;916:27;902:10;:41;;;;;;;;:::i;:::-;;898:437;;1111:1;1108;1100:5;1094:12;1087:4;1080:5;1076:16;1071:3;1063:6;1050:63;1039:74;;898:437;;;1309:1;1306;1298:5;1292:12;1285:4;1278:5;1274:16;1266:6;1261:3;1253:6;1248:63;1237:74;;898:437;519:822;;;;;;;:::o;2368:967:87:-;2639:31;;;;;6340:42:249;6328:55;;2639:31:87;;;6310:74:249;2639:8:87;;:24;;6283:18:249;;2639:31:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2680:32:87;;;;;6340:42:249;6328:55;;2680:32:87;;;6310:74:249;2680:8:87;;-1:-1:-1;2680:24:87;;-1:-1:-1;6283:18:249;;2680:32:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2722:30:87;;;;;;;;160:25:249;;;2722:8:87;;-1:-1:-1;2722:21:87;;-1:-1:-1;133:18:249;;2722:30:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2807:5;2767:78;;;2814:7;2823:21;;2767:78;;;;;;;;:::i;:::-;;;;;;;;2855:33;2973:21;;2996:5;3003:7;2903:108;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;3048:103;;;;;;;;;;;;;;;;2903:108;;-1:-1:-1;;;3048:103:87;;-1:-1:-1;2903:108:87;-1:-1:-1;3048:24:87;:103::i;:::-;3021:130;;3169:7;3161:61;;;;;;;15587:2:249;3161:61:87;;;15569:21:249;15626:2;15606:18;;;15599:30;15665:34;15645:18;;;15638:62;15736:11;15716:18;;;15709:39;15765:19;;3161:61:87;15385:405:249;3161:61:87;3232:96;3260:30;;3292:5;3299:7;3308:11;3321:6;3570:31;;;;;6340:42:249;6328:55;;3570:31:87;;;6310:74:249;3570:8:87;;:24;;6283:18:249;;3570:31:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3611:32:87;;;;;6340:42:249;6328:55;;3611:32:87;;;6310:74:249;3611:8:87;;-1:-1:-1;3611:24:87;;-1:-1:-1;6283:18:249;;3611:32:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3653:30:87;;;;;;;;160:25:249;;;3653:8:87;;-1:-1:-1;3653:21:87;;-1:-1:-1;133:18:249;;3653:30:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3746:5;3698:95;;;3753:7;3762:30;;3698:95;;;;;;;;:::i;:::-;;;;;;;;3803:30;3927;;3959:5;3966:7;3836:147;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;4020:104;;;;;;;;;;;;3836:147;;-1:-1:-1;;;4020:104:87;;;;;;;;4082:1;4085:17;4104:19;4020:24;:104::i;:::-;3993:131;;4142:7;4134:65;;;;;;;15997:2:249;4134:65:87;;;15979:21:249;16036:2;16016:18;;;16009:30;16075:34;16055:18;;;16048:62;16146:15;16126:18;;;16119:43;16179:19;;4134:65:87;15795:409:249;4134:65:87;4209:43;4225:11;4238:6;4246:5;4209:15;:43::i;:::-;3560:699;;3341:918;;;;;;:::o;4265:694::-;4355:29;;;;;;;;160:25:249;;;4355:8:87;;:21;;133:18:249;;4355:29:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4394:32:87;;;;;6340:42:249;6328:55;;4394:32:87;;;6310:74:249;4394:8:87;;-1:-1:-1;4394:24:87;;-1:-1:-1;6283:18:249;;4394:32:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4436:11;4450:65;;;;;;;;;;;;;;;;;;4499:15;;;;;;16411:2:249;16393:21;;;16450:1;16430:18;;;16423:29;16488:3;16483:2;16468:18;;16461:31;16524:2;16509:18;;16209:324;4450:65:87;4548:31;;;;;;;;160:25:249;;;4436:79:87;;-1:-1:-1;4525:20:87;;4548:26;:15;:26;;;;133:18:249;;4548:31:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4525:54;;4589:35;4635:12;4589:59;;4726:19;4663:83;;4710:6;4663:83;;4703:5;4663:83;;;4718:6;4663:83;;;;160:25:249;;148:2;133:18;;14:177;4663:83:87;;;;;;;;4803:50;;;;;:21;16920:55:249;;;4803:50:87;;;16902:74:249;16992:18;;;16985:34;;;4786:6:87;;4803:21;;;;;;16875:18:249;;4803:50:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;4872:51:87;;;;;:22;16920:55:249;;;4872:51:87;;;16902:74:249;16992:18;;;16985:34;;;4872:22:87;;;;;16875:18:249;;4872:51:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4864:88;;;;;;;17232:2:249;4864:88:87;;;17214:21:249;17271:2;17251:18;;;17244:30;17310:26;17290:18;;;17283:54;17354:18;;4864:88:87;17030:348:249;4864:88:87;4345:614;;;;4265:694;;;:::o;196:482:249:-;238:3;276:5;270:12;303:6;298:3;291:19;328:1;338:162;352:6;349:1;346:13;338:162;;;414:4;470:13;;;466:22;;460:29;442:11;;;438:20;;431:59;367:12;338:162;;;342:3;545:1;538:4;529:6;524:3;520:16;516:27;509:38;667:4;597:66;592:2;584:6;580:15;576:88;571:3;567:98;563:109;556:116;;;196:482;;;;:::o;683:220::-;832:2;821:9;814:21;795:4;852:45;893:2;882:9;878:18;870:6;852:45;:::i;908:347::-;959:8;969:6;1023:3;1016:4;1008:6;1004:17;1000:27;990:55;;1041:1;1038;1031:12;990:55;-1:-1:-1;1064:20:249;;1107:18;1096:30;;1093:50;;;1139:1;1136;1129:12;1093:50;1176:4;1168:6;1164:17;1152:29;;1228:3;1221:4;1212:6;1204;1200:19;1196:30;1193:39;1190:59;;;1245:1;1242;1235:12;1190:59;908:347;;;;;:::o;1260:154::-;1346:42;1339:5;1335:54;1328:5;1325:65;1315:93;;1404:1;1401;1394:12;1315:93;1260:154;:::o;1419:780::-;1533:6;1541;1549;1557;1565;1618:3;1606:9;1597:7;1593:23;1589:33;1586:53;;;1635:1;1632;1625:12;1586:53;1675:9;1662:23;1708:18;1700:6;1697:30;1694:50;;;1740:1;1737;1730:12;1694:50;1779:58;1829:7;1820:6;1809:9;1805:22;1779:58;:::i;:::-;1856:8;;-1:-1:-1;1753:84:249;-1:-1:-1;;1941:2:249;1926:18;;1913:32;1954:31;1913:32;1954:31;:::i;:::-;2004:5;-1:-1:-1;2056:2:249;2041:18;;2028:32;;-1:-1:-1;2112:2:249;2097:18;;2084:32;2147:1;2135:14;;2125:42;;2163:1;2160;2153:12;2125:42;2186:7;2176:17;;;1419:780;;;;;;;;:::o;2204:184::-;2256:77;2253:1;2246:88;2353:4;2350:1;2343:15;2377:4;2374:1;2367:15;2393:691;2458:5;2488:18;2529:2;2521:6;2518:14;2515:40;;;2535:18;;:::i;:::-;2669:2;2663:9;2735:2;2723:15;;2574:66;2719:24;;;2745:2;2715:33;2711:42;2699:55;;;2769:18;;;2789:22;;;2766:46;2763:72;;;2815:18;;:::i;:::-;2855:10;2851:2;2844:22;2884:6;2875:15;;2914:6;2906;2899:22;2954:3;2945:6;2940:3;2936:16;2933:25;2930:45;;;2971:1;2968;2961:12;2930:45;3021:6;3016:3;3009:4;3001:6;2997:17;2984:44;3076:1;3069:4;3060:6;3052;3048:19;3044:30;3037:41;;;;2393:691;;;;;:::o;3089:222::-;3132:5;3185:3;3178:4;3170:6;3166:17;3162:27;3152:55;;3203:1;3200;3193:12;3152:55;3225:80;3301:3;3292:6;3279:20;3272:4;3264:6;3260:17;3225:80;:::i;3316:899::-;3436:6;3444;3452;3460;3513:3;3501:9;3492:7;3488:23;3484:33;3481:53;;;3530:1;3527;3520:12;3481:53;3570:9;3557:23;3599:18;3640:2;3632:6;3629:14;3626:34;;;3656:1;3653;3646:12;3626:34;3679:50;3721:7;3712:6;3701:9;3697:22;3679:50;:::i;:::-;3669:60;;3776:2;3765:9;3761:18;3748:32;3738:42;;3833:2;3822:9;3818:18;3805:32;3789:48;;3862:2;3852:8;3849:16;3846:36;;;3878:1;3875;3868:12;3846:36;-1:-1:-1;3901:24:249;;3956:4;3948:13;;3944:27;-1:-1:-1;3934:55:249;;3985:1;3982;3975:12;3934:55;4008:74;4074:7;4069:2;4056:16;4051:2;4047;4043:11;4008:74;:::i;:::-;3998:84;;;4132:2;4121:9;4117:18;4104:32;4165:1;4158:5;4155:12;4145:40;;4181:1;4178;4171:12;4145:40;3316:899;;;;-1:-1:-1;3316:899:249;;-1:-1:-1;;3316:899:249:o;4412:1420::-;4558:6;4566;4574;4582;4590;4598;4606;4614;4622;4630;4683:3;4671:9;4662:7;4658:23;4654:33;4651:53;;;4700:1;4697;4690:12;4651:53;4740:9;4727:23;4769:18;4810:2;4802:6;4799:14;4796:34;;;4826:1;4823;4816:12;4796:34;4865:58;4915:7;4906:6;4895:9;4891:22;4865:58;:::i;:::-;4942:8;;-1:-1:-1;4839:84:249;-1:-1:-1;5030:2:249;5015:18;;5002:32;;-1:-1:-1;5046:16:249;;;5043:36;;;5075:1;5072;5065:12;5043:36;5114:60;5166:7;5155:8;5144:9;5140:24;5114:60;:::i;:::-;5193:8;;-1:-1:-1;5088:86:249;-1:-1:-1;5281:2:249;5266:18;;5253:32;;-1:-1:-1;5297:16:249;;;5294:36;;;5326:1;5323;5316:12;5294:36;;5365:60;5417:7;5406:8;5395:9;5391:24;5365:60;:::i;:::-;5444:8;;-1:-1:-1;5339:86:249;-1:-1:-1;;5529:2:249;5514:18;;5501:32;5542:31;5501:32;5542:31;:::i;:::-;5592:5;-1:-1:-1;5644:3:249;5629:19;;5616:33;;-1:-1:-1;5696:3:249;5681:19;;5668:33;;-1:-1:-1;5753:3:249;5738:19;;5725:33;5767;5725;5767;:::i;:::-;5819:7;5809:17;;;4412:1420;;;;;;;;;;;;;:::o;5837:322::-;5906:6;5959:2;5947:9;5938:7;5934:23;5930:32;5927:52;;;5975:1;5972;5965:12;5927:52;6015:9;6002:23;6048:18;6040:6;6037:30;6034:50;;;6080:1;6077;6070:12;6034:50;6103;6145:7;6136:6;6125:9;6121:22;6103:50;:::i;:::-;6093:60;5837:322;-1:-1:-1;;;;5837:322:249:o;8299:277::-;8366:6;8419:2;8407:9;8398:7;8394:23;8390:32;8387:52;;;8435:1;8432;8425:12;8387:52;8467:9;8461:16;8520:5;8513:13;8506:21;8499:5;8496:32;8486:60;;8542:1;8539;8532:12;9412:184;9464:77;9461:1;9454:88;9561:4;9558:1;9551:15;9585:4;9582:1;9575:15;9601:325;9689:6;9684:3;9677:19;9741:6;9734:5;9727:4;9722:3;9718:14;9705:43;;9793:1;9786:4;9777:6;9772:3;9768:16;9764:27;9757:38;9659:3;9915:4;9845:66;9840:2;9832:6;9828:15;9824:88;9819:3;9815:98;9811:109;9804:116;;9601:325;;;;:::o;9931:515::-;10168:3;10157:9;10150:22;10131:4;10189:62;10246:3;10235:9;10231:19;10223:6;10215;10189:62;:::i;:::-;10299:42;10287:55;;;;10282:2;10267:18;;10260:83;-1:-1:-1;10374:2:249;10359:18;;10352:34;;;;10434:4;10422:17;10417:2;10402:18;;;10395:45;10181:70;9931:515;-1:-1:-1;;9931:515:249:o;11348:653::-;11623:3;11612:9;11605:22;11586:4;11650:46;11691:3;11680:9;11676:19;11668:6;11650:46;:::i;:::-;11744:42;11736:6;11732:55;11727:2;11716:9;11712:18;11705:83;11824:6;11819:2;11808:9;11804:18;11797:34;11879:9;11871:6;11867:22;11862:2;11851:9;11847:18;11840:50;11907:33;11933:6;11925;11907:33;:::i;:::-;11899:41;;;11989:4;11981:6;11977:17;11971:3;11960:9;11956:19;11949:46;11348:653;;;;;;;;:::o;12539:315::-;12724:6;12713:9;12706:25;12767:2;12762;12751:9;12747:18;12740:30;12687:4;12787:61;12844:2;12833:9;12829:18;12821:6;12813;12787:61;:::i;12859:435::-;13072:2;13061:9;13054:21;13035:4;13092:61;13149:2;13138:9;13134:18;13126:6;13118;13092:61;:::i;:::-;13201:42;13189:55;;;;13184:2;13169:18;;13162:83;-1:-1:-1;13276:2:249;13261:18;13254:34;13084:69;12859:435;-1:-1:-1;;12859:435:249:o;13703:340::-;13880:2;13869:9;13862:21;13843:4;13900:45;13941:2;13930:9;13926:18;13918:6;13900:45;:::i;:::-;13892:53;;13993:42;13985:6;13981:55;13976:2;13965:9;13961:18;13954:83;13703:340;;;;;:::o;14048:251::-;14118:6;14171:2;14159:9;14150:7;14146:23;14142:32;14139:52;;;14187:1;14184;14177:12;14139:52;14219:9;14213:16;14238:31;14263:5;14238:31;:::i;14304:531::-;14545:66;14537:6;14533:79;14522:9;14515:98;14649:2;14644;14633:9;14629:18;14622:30;14496:4;14675:45;14716:2;14705:9;14701:18;14693:6;14675:45;:::i;:::-;14768:9;14760:6;14756:22;14751:2;14740:9;14736:18;14729:50;14796:33;14822:6;14814;14796:33;:::i;:::-;14788:41;14304:531;-1:-1:-1;;;;;;14304:531:249:o;14840:184::-;14910:6;14963:2;14951:9;14942:7;14938:23;14934:32;14931:52;;;14979:1;14976;14969:12;14931:52;-1:-1:-1;15002:16:249;;14840:184;-1:-1:-1;14840:184:249:o","linkReferences":{"src/libraries/Security.sol":{"Security":[{"start":4793,"length":20},{"start":4914,"length":20},{"start":7254,"length":20},{"start":7397,"length":20},{"start":7520,"length":20},{"start":8765,"length":20},{"start":8908,"length":20},{"start":9031,"length":20},{"start":9622,"length":20},{"start":9765,"length":20},{"start":9888,"length":20},{"start":10444,"length":20},{"start":10586,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":8328,"length":20}]}},"immutableReferences":{"71353":[{"start":4452,"length":32},{"start":5774,"length":32},{"start":6918,"length":32},{"start":10834,"length":32}],"71356":[{"start":8360,"length":32}],"71437":[{"start":6211,"length":32},{"start":8159,"length":32}]}},"methodIdentifiers":{"ACL_ADMIN()":"5e209249","ACTION()":"dbd55fb3","ACTION_MANAGER()":"25889b22","ACTION_MANAGER_NAME_ACTIONS()":"739baf49","ACTION_USER_IMPLENTATION_CALLER()":"c414d4f9","ADDRESS_ACTION_MANAGER()":"ba9a08d7","ADDRESS_BLUEPRINT_MANAGER()":"e642ad34","ADDRESS_LENDER_MARKET()":"423ac8d9","ADDRESS_MANAGER_ACCESS_CONTROL()":"5f39ca22","ADDRESS_MODULE_MANAGER()":"420ea360","ADDRESS_MONEY_MARKET_NAME_BLUEPRINT()":"be22fa1e","ADDRESS_NAME_CONCRETE()":"d017d357","ADDRESS_NAME_MASTERVAULT()":"e51a3bab","ADDRESS_NAME_PORTFOLIO()":"430c6fe6","ADDRESS_NAME_STREAMVAULT()":"697e744c","ADDRESS_NAME_TOKEN_ETH()":"8b3e0471","ADDRESS_NAME_TOKEN_USDC()":"6a0b3f64","ADDRESS_NAME_TOKEN_WETH()":"26026d18","ADDRESS_STAKEABLE_C_ASSET_TOKEN()":"608dade9","ADDRESS_TOKEN_CHAIN_PRICEFEED()":"a652cb80","ADDRESS_TOKEN_PRICEFEED()":"057afbfe","ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT()":"a2fd43c5","BLUEPRINT()":"0072e140","BLUEPRINT_MANAGER()":"95789e1c","BLUEPRINT_MANAGER_NAME_BLUEPRINTS()":"2d1da17e","CONCRETE_MANAGER()":"2a0f4d6b","COUNTER_CLAIM_ID()":"a5be6063","COUNTER_LOAN_ID()":"724348ab","COUNTER_PORTFOLIO_ID()":"79c52aca","COUNTER_PROTECTION_ID()":"c5ad7879","COUNTER_RECEIPT_ID()":"f61e60f2","CT_REWARDS_TREASURY()":"5e61dc38","CT_STAKING_CONTRACT()":"264c1356","CT_TOKEN_ADDRESS()":"d88597de","MODULE()":"094d3a34","MODULE_MANAGER()":"8b40da7d","MODULE_MANAGER_NAME_MODULES()":"59dcf3f6","PORTFOLIOID_INDEX_TO_LOANID()":"ca6d5e33","PORTFOLIOID_INDEX_TO_USER()":"42ff308b","PORTFOLIOID_TO_USER()":"91aab3e4","PROTOCOL()":"91b9b827","PROTOCOL_MANAGER()":"ccca8911","RECEIPTID_TO_POSITION()":"d83205c0","RECEIPTID_TO_USER()":"ec11384a","ROLE_NAME_USER_TO_EXIST()":"7a25c9d3","STAKING_DURATION_AND_REWARDS()":"af895a3b","STAKING_RECEIPT_ADDRESS()":"9e5f8542","SUDO_ADMIN()":"8c3e62b6","TOKEN_LENDER_NAME_COLLATERAL_APPROVED()":"00a9d96e","USER_ID_CLAIM()":"d15263d3","USER_ID_PROTECTION()":"62a4c3df","USER_ID_PROTECTIONID()":"b70855fb","USER_ID_PROTECTION_FINANCIAL_TERMS()":"aacb7f34","USER_ID_PROTECTION_UPDATES()":"eaca3864","USER_INDEX_TO_BORROWDATA()":"7d49df3b","USER_INDEX_TO_LOANID()":"7d95de8e","USER_INDEX_TO_LOANINITIALDATA()":"61945bfc","USER_INDEX_TO_LOANSUPPLYDATA()":"678df18f","USER_INDEX_TO_LOANUPDATE()":"9d185264","USER_TO_PORTFOLIOID()":"638bf74f","USER_TO_RECEIPT_INDEX_COUNT()":"0e494332","executeActionTransaction(string,uint256,bytes,uint8)":"8d7e9e94","getActionAddress(string)":"ffbf5163","setProtectionData(bytes,bytes,bytes,address,uint256,uint256,address)":"e107b36b","updateLoanInfo(bytes,address,uint256,uint8)":"7b6a4ce6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"concreteStorage_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"loanId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"protectionInfo\",\"type\":\"bytes\"}],\"name\":\"ProtectionAddedToLoan\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"loanId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"protectionFinancialTermsData\",\"type\":\"bytes\"}],\"name\":\"ProtectionFinancialTermsDataSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"loanId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"protectionUpdateData\",\"type\":\"bytes\"}],\"name\":\"ProtectionUpdateDataSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"TokenTransferredToVault\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER_NAME_ACTIONS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_USER_IMPLENTATION_CALLER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_LENDER_MARKET\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MANAGER_ACCESS_CONTROL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_CONCRETE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_MASTERVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_PORTFOLIO\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_STREAMVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_ETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_USDC\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_WETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_STAKEABLE_C_ASSET_TOKEN\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_CHAIN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER_NAME_BLUEPRINTS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONCRETE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_CLAIM_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_LOAN_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PORTFOLIO_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PROTECTION_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_RECEIPT_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_REWARDS_TREASURY\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_STAKING_CONTRACT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_TOKEN_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER_NAME_MODULES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_POSITION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLE_NAME_USER_TO_EXIST\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_DURATION_AND_REWARDS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_RECEIPT_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUDO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_LENDER_NAME_COLLATERAL_APPROVED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_CLAIM\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTIONID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_FINANCIAL_TERMS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_UPDATES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_BORROWDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANINITIALDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANSUPPLYDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANUPDATE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_PORTFOLIOID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_RECEIPT_INDEX_COUNT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation_\",\"type\":\"uint8\"}],\"name\":\"executeActionTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"}],\"name\":\"getActionAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"protectionInfo_\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"protectionUpdateData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"protectionFinanicialTermsData_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openingFee_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"}],\"name\":\"setProtectionData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"loanInfo_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"},{\"internalType\":\"enum ILoan.UpdateField\",\"name\":\"updateField\",\"type\":\"uint8\"}],\"name\":\"updateLoanInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/borrow/blueprints/protection/ProtectionBlueprint.sol\":\"ProtectionBlueprint\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":10000000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"src/borrow/actions/claim/interfaces/IClaim.sol\":{\"keccak256\":\"0x7e56014d0b71796aa85a5f6af8a14328595fb19e494b34e7b23bdebd10919894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bbefbc1f26d0da6fd33261c35393c8507f675d350657ef625a803a3f0f6eada\",\"dweb:/ipfs/QmNrekVcmuxmeUsyC1nLYSgKgsH6rBw9Z3gHRV7p8D5J9U\"]},\"src/borrow/actions/loan/interfaces/ILoan.sol\":{\"keccak256\":\"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0\",\"dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ\"]},\"src/borrow/actions/protection/interfaces/IProtection.sol\":{\"keccak256\":\"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d\",\"dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2\"]},\"src/borrow/blueprints/protection/ProtectionBlueprint.sol\":{\"keccak256\":\"0xb4e5b4b350058f84986ddb58ff238e15ae3e29f78de373597b359c364151c937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d3d26875c82b8e4dcee0982b6e23ec85d1780ef0a8a2a9fa09ff52525954b2d\",\"dweb:/ipfs/QmdKEo773hcijQQUvST379FeV3WotA1cfJvtEg3wPZvjNg\"]},\"src/borrow/utils/implementations/interfaces/ILenderBase.sol\":{\"keccak256\":\"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f\",\"dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK\"]},\"src/core/ActionManager.sol\":{\"keccak256\":\"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831\",\"dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG\"]},\"src/core/Executor.sol\":{\"keccak256\":\"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f\",\"dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h\"]},\"src/core/interfaces/IACL.sol\":{\"keccak256\":\"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a\",\"dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo\"]},\"src/core/interfaces/IConcreteStorage.sol\":{\"keccak256\":\"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8\",\"dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF\"]},\"src/core/interfaces/IERC165.sol\":{\"keccak256\":\"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473\",\"dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7\"]},\"src/core/utils/ConcreteRoles.sol\":{\"keccak256\":\"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab\",\"dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72\"]},\"src/core/utils/OnlyRole.sol\":{\"keccak256\":\"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a\",\"dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN\"]},\"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol\":{\"keccak256\":\"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980\",\"dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj\"]},\"src/helpers/Enum.sol\":{\"keccak256\":\"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2\",\"dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh\"]},\"src/helpers/Pointer.sol\":{\"keccak256\":\"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c\",\"dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ\"]},\"src/helpers/StorageHandler.sol\":{\"keccak256\":\"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab\",\"dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa\"]},\"src/helpers/base/BlueprintBase.sol\":{\"keccak256\":\"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0\",\"dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC\"]},\"src/libraries/BorrowEvents.sol\":{\"keccak256\":\"0xb33cee7ff7d279563b717b9fee9c24faef33368819add1a674b31ccea0d64822\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b52d128362b9a159e0d0d353de964687d736e1825f8564bb2552b0bd310bb7\",\"dweb:/ipfs/QmbsLhoTFXXGetgSX31QzSzWYhvMtD5UR1yfSGBdvvBPXR\"]},\"src/libraries/Security.sol\":{\"keccak256\":\"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c\",\"dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY\"]},\"src/libraries/StorageKeyLib.sol\":{\"keccak256\":\"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f\",\"dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"concreteStorage_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"loanId","type":"uint256","indexed":false},{"internalType":"bytes","name":"protectionInfo","type":"bytes","indexed":false}],"type":"event","name":"ProtectionAddedToLoan","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"loanId","type":"uint256","indexed":false},{"internalType":"bytes","name":"protectionFinancialTermsData","type":"bytes","indexed":false}],"type":"event","name":"ProtectionFinancialTermsDataSet","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"loanId","type":"uint256","indexed":false},{"internalType":"bytes","name":"protectionUpdateData","type":"bytes","indexed":false}],"type":"event","name":"ProtectionUpdateDataSet","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false},{"internalType":"address","name":"vault","type":"address","indexed":true}],"type":"event","name":"TokenTransferredToVault","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ACL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_ACTION_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_LENDER_MARKET","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MODULE_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_CONCRETE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_MASTERVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_PORTFOLIO","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_STREAMVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_ETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_USDC","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_WETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONCRETE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_CLAIM_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_LOAN_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PORTFOLIO_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PROTECTION_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_RECEIPT_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_REWARDS_TREASURY","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_STAKING_CONTRACT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_TOKEN_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER_NAME_MODULES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_POSITION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROLE_NAME_USER_TO_EXIST","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_DURATION_AND_REWARDS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_RECEIPT_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SUDO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_CLAIM","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTIONID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_UPDATES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_BORROWDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANUPDATE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_PORTFOLIOID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"executeActionTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"}],"stateMutability":"view","type":"function","name":"getActionAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"protectionInfo_","type":"bytes"},{"internalType":"bytes","name":"protectionUpdateData","type":"bytes"},{"internalType":"bytes","name":"protectionFinanicialTermsData_","type":"bytes"},{"internalType":"address","name":"user_","type":"address"},{"internalType":"uint256","name":"loanId_","type":"uint256"},{"internalType":"uint256","name":"openingFee_","type":"uint256"},{"internalType":"address","name":"token_","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setProtectionData"},{"inputs":[{"internalType":"bytes","name":"loanInfo_","type":"bytes"},{"internalType":"address","name":"user_","type":"address"},{"internalType":"uint256","name":"loanId_","type":"uint256"},{"internalType":"enum ILoan.UpdateField","name":"updateField","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"updateLoanInfo"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","chainlink/=lib/chainlink/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":10000000},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/borrow/blueprints/protection/ProtectionBlueprint.sol":"ProtectionBlueprint"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"src/borrow/actions/claim/interfaces/IClaim.sol":{"keccak256":"0x7e56014d0b71796aa85a5f6af8a14328595fb19e494b34e7b23bdebd10919894","urls":["bzz-raw://0bbefbc1f26d0da6fd33261c35393c8507f675d350657ef625a803a3f0f6eada","dweb:/ipfs/QmNrekVcmuxmeUsyC1nLYSgKgsH6rBw9Z3gHRV7p8D5J9U"],"license":"MIT"},"src/borrow/actions/loan/interfaces/ILoan.sol":{"keccak256":"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4","urls":["bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0","dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ"],"license":"MIT"},"src/borrow/actions/protection/interfaces/IProtection.sol":{"keccak256":"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935","urls":["bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d","dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2"],"license":"MIT"},"src/borrow/blueprints/protection/ProtectionBlueprint.sol":{"keccak256":"0xb4e5b4b350058f84986ddb58ff238e15ae3e29f78de373597b359c364151c937","urls":["bzz-raw://8d3d26875c82b8e4dcee0982b6e23ec85d1780ef0a8a2a9fa09ff52525954b2d","dweb:/ipfs/QmdKEo773hcijQQUvST379FeV3WotA1cfJvtEg3wPZvjNg"],"license":"MIT"},"src/borrow/utils/implementations/interfaces/ILenderBase.sol":{"keccak256":"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7","urls":["bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f","dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK"],"license":"MIT"},"src/core/ActionManager.sol":{"keccak256":"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a","urls":["bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831","dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG"],"license":"MIT"},"src/core/Executor.sol":{"keccak256":"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e","urls":["bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f","dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h"],"license":"MIT"},"src/core/interfaces/IACL.sol":{"keccak256":"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5","urls":["bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a","dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo"],"license":"MIT"},"src/core/interfaces/IConcreteStorage.sol":{"keccak256":"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9","urls":["bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8","dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF"],"license":"MIT"},"src/core/interfaces/IERC165.sol":{"keccak256":"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10","urls":["bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473","dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7"],"license":"MIT"},"src/core/utils/ConcreteRoles.sol":{"keccak256":"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e","urls":["bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab","dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72"],"license":"MIT"},"src/core/utils/OnlyRole.sol":{"keccak256":"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11","urls":["bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a","dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN"],"license":"MIT"},"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol":{"keccak256":"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f","urls":["bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980","dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj"],"license":"MIT"},"src/helpers/Enum.sol":{"keccak256":"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559","urls":["bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2","dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh"],"license":"MIT"},"src/helpers/Pointer.sol":{"keccak256":"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a","urls":["bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c","dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ"],"license":"MIT"},"src/helpers/StorageHandler.sol":{"keccak256":"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51","urls":["bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab","dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa"],"license":"MIT"},"src/helpers/base/BlueprintBase.sol":{"keccak256":"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492","urls":["bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0","dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC"],"license":"MIT"},"src/libraries/BorrowEvents.sol":{"keccak256":"0xb33cee7ff7d279563b717b9fee9c24faef33368819add1a674b31ccea0d64822","urls":["bzz-raw://96b52d128362b9a159e0d0d353de964687d736e1825f8564bb2552b0bd310bb7","dweb:/ipfs/QmbsLhoTFXXGetgSX31QzSzWYhvMtD5UR1yfSGBdvvBPXR"],"license":"MIT"},"src/libraries/Security.sol":{"keccak256":"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b","urls":["bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c","dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY"],"license":"MIT"},"src/libraries/StorageKeyLib.sol":{"keccak256":"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7","urls":["bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f","dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/borrow/blueprints/protection/ProtectionBlueprint.sol","id":62731,"exportedSymbols":{"BlueprintBase":[71548],"BorrowEventsLib":[74227],"Enum":[71189],"IClaim":[54631],"IERC20":[45751],"ILoan":[56049],"ProtectionBlueprint":[62730],"Security":[75484]},"nodeType":"SourceUnit","src":"31:4931:87","nodes":[{"id":62338,"nodeType":"PragmaDirective","src":"31:23:87","nodes":[],"literals":["solidity","0.8",".20"]},{"id":62340,"nodeType":"ImportDirective","src":"56:49:87","nodes":[],"absolutePath":"src/helpers/Enum.sol","file":"../../../helpers/Enum.sol","nameLocation":"-1:-1:-1","scope":62731,"sourceUnit":71190,"symbolAliases":[{"foreign":{"id":62339,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"65:4:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62342,"nodeType":"ImportDirective","src":"106:72:87","nodes":[],"absolutePath":"src/helpers/base/BlueprintBase.sol","file":"../../../helpers/base/BlueprintBase.sol","nameLocation":"-1:-1:-1","scope":62731,"sourceUnit":71549,"symbolAliases":[{"foreign":{"id":62341,"name":"BlueprintBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71548,"src":"115:13:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62344,"nodeType":"ImportDirective","src":"179:59:87","nodes":[],"absolutePath":"src/libraries/Security.sol","file":"../../../libraries/Security.sol","nameLocation":"-1:-1:-1","scope":62731,"sourceUnit":75485,"symbolAliases":[{"foreign":{"id":62343,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"188:8:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62346,"nodeType":"ImportDirective","src":"239:67:87","nodes":[],"absolutePath":"src/borrow/actions/claim/interfaces/IClaim.sol","file":"../../actions/claim/interfaces/IClaim.sol","nameLocation":"-1:-1:-1","scope":62731,"sourceUnit":54632,"symbolAliases":[{"foreign":{"id":62345,"name":"IClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"248:6:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62348,"nodeType":"ImportDirective","src":"307:64:87","nodes":[],"absolutePath":"src/borrow/actions/loan/interfaces/ILoan.sol","file":"../../actions/loan/interfaces/ILoan.sol","nameLocation":"-1:-1:-1","scope":62731,"sourceUnit":56050,"symbolAliases":[{"foreign":{"id":62347,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"316:5:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62350,"nodeType":"ImportDirective","src":"372:97:87","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../../../../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":62731,"sourceUnit":45752,"symbolAliases":[{"foreign":{"id":62349,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45751,"src":"381:6:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62352,"nodeType":"ImportDirective","src":"470:70:87","nodes":[],"absolutePath":"src/libraries/BorrowEvents.sol","file":"../../../libraries/BorrowEvents.sol","nameLocation":"-1:-1:-1","scope":62731,"sourceUnit":74228,"symbolAliases":[{"foreign":{"id":62351,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"479:15:87","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":62730,"nodeType":"ContractDefinition","src":"542:4419:87","nodes":[{"id":62363,"nodeType":"FunctionDefinition","src":"594:73:87","nodes":[],"body":{"id":62362,"nodeType":"Block","src":"664:3:87","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":62359,"name":"concreteStorage_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62356,"src":"646:16:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":62360,"kind":"baseConstructorSpecifier","modifierName":{"id":62358,"name":"BlueprintBase","nameLocations":["632:13:87"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"632:13:87"},"nodeType":"ModifierInvocation","src":"632:31:87"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":62357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62356,"mutability":"mutable","name":"concreteStorage_","nameLocation":"614:16:87","nodeType":"VariableDeclaration","scope":62363,"src":"606:24:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62355,"name":"address","nodeType":"ElementaryTypeName","src":"606:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"605:26:87"},"returnParameters":{"id":62361,"nodeType":"ParameterList","parameters":[],"src":"664:0:87"},"scope":62730,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":62421,"nodeType":"FunctionDefinition","src":"673:650:87","nodes":[],"body":{"id":62420,"nodeType":"Block","src":"881:442:87","nodes":[],"statements":[{"expression":{"arguments":[{"id":62381,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62367,"src":"916:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62378,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"891:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"900:15:87","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"891:24:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"891:31:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62383,"nodeType":"ExpressionStatement","src":"891:31:87"},{"expression":{"arguments":[{"id":62387,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62369,"src":"954:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62384,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"932:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"941:12:87","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"932:21:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":62388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"932:30:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62389,"nodeType":"ExpressionStatement","src":"932:30:87"},{"assignments":[62391],"declarations":[{"constant":false,"id":62391,"mutability":"mutable","name":"updateLoanData","nameLocation":"985:14:87","nodeType":"VariableDeclaration","scope":62420,"src":"972:27:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62390,"name":"bytes","nodeType":"ElementaryTypeName","src":"972:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":62403,"initialValue":{"arguments":[{"hexValue":"7570646174654c6f616e496e666f2862797465732c616464726573732c75696e743235362c75696e743829","id":62394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1039:45:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b6a4ce690a8d994c7dd962567833b846b9abb724bcb1a97ba5fae27687b3436","typeString":"literal_string \"updateLoanInfo(bytes,address,uint256,uint8)\""},"value":"updateLoanInfo(bytes,address,uint256,uint8)"},{"id":62395,"name":"loanInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62365,"src":"1086:9:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62396,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62367,"src":"1097:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62397,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62369,"src":"1104:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":62400,"name":"updateField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62372,"src":"1119:11:87","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}],"id":62399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1113:5:87","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":62398,"name":"uint8","nodeType":"ElementaryTypeName","src":"1113:5:87","typeDescriptions":{}}},"id":62401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1113:18:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b6a4ce690a8d994c7dd962567833b846b9abb724bcb1a97ba5fae27687b3436","typeString":"literal_string \"updateLoanInfo(bytes,address,uint256,uint8)\""},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":62392,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1002:3:87","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1006:19:87","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1002:23:87","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1002:139:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"972:169:87"},{"assignments":[62405],"declarations":[{"constant":false,"id":62405,"mutability":"mutable","name":"success","nameLocation":"1156:7:87","nodeType":"VariableDeclaration","scope":62420,"src":"1151:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":62404,"name":"bool","nodeType":"ElementaryTypeName","src":"1151:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":62414,"initialValue":{"arguments":[{"hexValue":"5570646174654c6f616e496e666f416374696f6e","id":62407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1191:22:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a88f3497097e119d8b5607f2093eb34e3771019a45bcb831c21bb984849dfda","typeString":"literal_string \"UpdateLoanInfoAction\""},"value":"UpdateLoanInfoAction"},{"hexValue":"30","id":62408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1215:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":62409,"name":"updateLoanData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62391,"src":"1218:14:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":62410,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"1234:4:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":62411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1239:9:87","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"1234:14:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":62412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1249:4:87","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"1234:19:87","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a88f3497097e119d8b5607f2093eb34e3771019a45bcb831c21bb984849dfda","typeString":"literal_string \"UpdateLoanInfoAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":62406,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"1166:24:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":62413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1166:88:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"1151:103:87"},{"expression":{"arguments":[{"id":62416,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62405,"src":"1272:7:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205570646174654c6f616e496e666f416374696f6e206661696c6564","id":62417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1281:34:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd5fd81816c2716ae640a3d23ebc9ffc8e042713ce1683918870bf11ab666a79","typeString":"literal_string \"ERR: UpdateLoanInfoAction failed\""},"value":"ERR: UpdateLoanInfoAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cd5fd81816c2716ae640a3d23ebc9ffc8e042713ce1683918870bf11ab666a79","typeString":"literal_string \"ERR: UpdateLoanInfoAction failed\""}],"id":62415,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1264:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1264:52:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62419,"nodeType":"ExpressionStatement","src":"1264:52:87"}]},"functionSelector":"7b6a4ce6","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":62375,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"858:17:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":62376,"kind":"modifierInvocation","modifierName":{"id":62374,"name":"onlyRole","nameLocations":["849:8:87"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"849:8:87"},"nodeType":"ModifierInvocation","src":"849:27:87"}],"name":"updateLoanInfo","nameLocation":"682:14:87","parameters":{"id":62373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62365,"mutability":"mutable","name":"loanInfo_","nameLocation":"721:9:87","nodeType":"VariableDeclaration","scope":62421,"src":"706:24:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62364,"name":"bytes","nodeType":"ElementaryTypeName","src":"706:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62367,"mutability":"mutable","name":"user_","nameLocation":"748:5:87","nodeType":"VariableDeclaration","scope":62421,"src":"740:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62366,"name":"address","nodeType":"ElementaryTypeName","src":"740:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62369,"mutability":"mutable","name":"loanId_","nameLocation":"771:7:87","nodeType":"VariableDeclaration","scope":62421,"src":"763:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62368,"name":"uint256","nodeType":"ElementaryTypeName","src":"763:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62372,"mutability":"mutable","name":"updateField","nameLocation":"806:11:87","nodeType":"VariableDeclaration","scope":62421,"src":"788:29:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"},"typeName":{"id":62371,"nodeType":"UserDefinedTypeName","pathNode":{"id":62370,"name":"ILoan.UpdateField","nameLocations":["788:5:87","794:11:87"],"nodeType":"IdentifierPath","referencedDeclaration":55984,"src":"788:17:87"},"referencedDeclaration":55984,"src":"788:17:87","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}},"visibility":"internal"}],"src":"696:127:87"},"returnParameters":{"id":62377,"nodeType":"ParameterList","parameters":[],"src":"881:0:87"},"scope":62730,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":62503,"nodeType":"FunctionDefinition","src":"1329:1033:87","nodes":[],"body":{"id":62502,"nodeType":"Block","src":"1660:702:87","nodes":[],"statements":[{"expression":{"arguments":[{"id":62444,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62429,"src":"1695:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62441,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1670:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1679:15:87","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"1670:24:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1670:31:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62446,"nodeType":"ExpressionStatement","src":"1670:31:87"},{"expression":{"arguments":[{"id":62450,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62435,"src":"1736:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62447,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1711:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1720:15:87","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"1711:24:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1711:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62452,"nodeType":"ExpressionStatement","src":"1711:32:87"},{"expression":{"arguments":[{"id":62456,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62431,"src":"1775:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62453,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1753:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1762:12:87","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"1753:21:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":62457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1753:30:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62458,"nodeType":"ExpressionStatement","src":"1753:30:87"},{"eventCall":{"arguments":[{"id":62462,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62429,"src":"1836:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62463,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62431,"src":"1843:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62464,"name":"protectionInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62423,"src":"1852:15:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":62459,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"1798:15:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":62461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1814:21:87","memberName":"ProtectionAddedToLoan","nodeType":"MemberAccess","referencedDeclaration":74102,"src":"1798:37:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":62465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1798:70:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62466,"nodeType":"EmitStatement","src":"1793:75:87"},{"assignments":[62468],"declarations":[{"constant":false,"id":62468,"mutability":"mutable","name":"setProtectionData_","nameLocation":"1891:18:87","nodeType":"VariableDeclaration","scope":62502,"src":"1878:31:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62467,"name":"bytes","nodeType":"ElementaryTypeName","src":"1878:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":62476,"initialValue":{"arguments":[{"hexValue":"73657450726f74656374696f6e446174612862797465732c616464726573732c75696e7432353629","id":62471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1948:42:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_2e397b484c3a41c12fc4eec4e9314d8d9bae74fd615dd890986cd3234e52be76","typeString":"literal_string \"setProtectionData(bytes,address,uint256)\""},"value":"setProtectionData(bytes,address,uint256)"},{"id":62472,"name":"protectionInfo_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62423,"src":"1992:15:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62473,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62429,"src":"2009:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62474,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62431,"src":"2016:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2e397b484c3a41c12fc4eec4e9314d8d9bae74fd615dd890986cd3234e52be76","typeString":"literal_string \"setProtectionData(bytes,address,uint256)\""},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62469,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1924:3:87","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1928:19:87","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1924:23:87","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1924:100:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1878:146:87"},{"assignments":[62478],"declarations":[{"constant":false,"id":62478,"mutability":"mutable","name":"success","nameLocation":"2039:7:87","nodeType":"VariableDeclaration","scope":62502,"src":"2034:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":62477,"name":"bool","nodeType":"ElementaryTypeName","src":"2034:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":62487,"initialValue":{"arguments":[{"hexValue":"53657450726f74656374696f6e44617461416374696f6e","id":62480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2074:25:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_d563d38acf16a0ff2a1993bc65ca14433fa61fa5de041cb028695f6d3e0848f1","typeString":"literal_string \"SetProtectionDataAction\""},"value":"SetProtectionDataAction"},{"hexValue":"30","id":62481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2101:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":62482,"name":"setProtectionData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62468,"src":"2104:18:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":62483,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"2124:4:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":62484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2129:9:87","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"2124:14:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":62485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2139:4:87","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"2124:19:87","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d563d38acf16a0ff2a1993bc65ca14433fa61fa5de041cb028695f6d3e0848f1","typeString":"literal_string \"SetProtectionDataAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":62479,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"2049:24:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":62486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2049:95:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2034:110:87"},{"expression":{"arguments":[{"id":62489,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62478,"src":"2162:7:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a2053657450726f74656374696f6e44617461416374696f6e206661696c6564","id":62490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2171:37:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_c349b6d8935e397ca633e45b715e8d1e67d221b913426f92ee677c409963ef2a","typeString":"literal_string \"ERR: SetProtectionDataAction failed\""},"value":"ERR: SetProtectionDataAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c349b6d8935e397ca633e45b715e8d1e67d221b913426f92ee677c409963ef2a","typeString":"literal_string \"ERR: SetProtectionDataAction failed\""}],"id":62488,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2154:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2154:55:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62492,"nodeType":"ExpressionStatement","src":"2154:55:87"},{"expression":{"arguments":[{"id":62494,"name":"protectionUpdateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62425,"src":"2256:20:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62495,"name":"protectionFinanicialTermsData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62427,"src":"2278:30:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62496,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62429,"src":"2310:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62497,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62431,"src":"2317:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62498,"name":"openingFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62433,"src":"2326:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62499,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62435,"src":"2339:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62493,"name":"setProtectionUpdateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62579,"src":"2219:23:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bytes_calldata_ptr_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (bytes calldata,bytes calldata,address,uint256,uint256,address)"}},"id":62500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2219:136:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62501,"nodeType":"ExpressionStatement","src":"2219:136:87"}]},"functionSelector":"e107b36b","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":62438,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"1637:17:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":62439,"kind":"modifierInvocation","modifierName":{"id":62437,"name":"onlyRole","nameLocations":["1628:8:87"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"1628:8:87"},"nodeType":"ModifierInvocation","src":"1628:27:87"}],"name":"setProtectionData","nameLocation":"1338:17:87","parameters":{"id":62436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62423,"mutability":"mutable","name":"protectionInfo_","nameLocation":"1380:15:87","nodeType":"VariableDeclaration","scope":62503,"src":"1365:30:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62422,"name":"bytes","nodeType":"ElementaryTypeName","src":"1365:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62425,"mutability":"mutable","name":"protectionUpdateData","nameLocation":"1420:20:87","nodeType":"VariableDeclaration","scope":62503,"src":"1405:35:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62424,"name":"bytes","nodeType":"ElementaryTypeName","src":"1405:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62427,"mutability":"mutable","name":"protectionFinanicialTermsData_","nameLocation":"1465:30:87","nodeType":"VariableDeclaration","scope":62503,"src":"1450:45:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62426,"name":"bytes","nodeType":"ElementaryTypeName","src":"1450:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62429,"mutability":"mutable","name":"user_","nameLocation":"1513:5:87","nodeType":"VariableDeclaration","scope":62503,"src":"1505:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62428,"name":"address","nodeType":"ElementaryTypeName","src":"1505:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62431,"mutability":"mutable","name":"loanId_","nameLocation":"1536:7:87","nodeType":"VariableDeclaration","scope":62503,"src":"1528:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62430,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62433,"mutability":"mutable","name":"openingFee_","nameLocation":"1561:11:87","nodeType":"VariableDeclaration","scope":62503,"src":"1553:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62432,"name":"uint256","nodeType":"ElementaryTypeName","src":"1553:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62435,"mutability":"mutable","name":"token_","nameLocation":"1590:6:87","nodeType":"VariableDeclaration","scope":62503,"src":"1582:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62434,"name":"address","nodeType":"ElementaryTypeName","src":"1582:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1355:247:87"},"returnParameters":{"id":62440,"nodeType":"ParameterList","parameters":[],"src":"1660:0:87"},"scope":62730,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":62579,"nodeType":"FunctionDefinition","src":"2368:967:87","nodes":[],"body":{"id":62578,"nodeType":"Block","src":"2629:706:87","nodes":[],"statements":[{"expression":{"arguments":[{"id":62521,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62509,"src":"2664:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62518,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"2639:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2648:15:87","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"2639:24:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2639:31:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62523,"nodeType":"ExpressionStatement","src":"2639:31:87"},{"expression":{"arguments":[{"id":62527,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62515,"src":"2705:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62524,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"2680:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2689:15:87","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"2680:24:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2680:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62529,"nodeType":"ExpressionStatement","src":"2680:32:87"},{"expression":{"arguments":[{"id":62533,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62511,"src":"2744:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62530,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"2722:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2731:12:87","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"2722:21:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":62534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2722:30:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62535,"nodeType":"ExpressionStatement","src":"2722:30:87"},{"eventCall":{"arguments":[{"id":62539,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62509,"src":"2807:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62540,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62511,"src":"2814:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62541,"name":"protectionUpdateData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62505,"src":"2823:21:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":62536,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"2767:15:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":62538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2783:23:87","memberName":"ProtectionUpdateDataSet","nodeType":"MemberAccess","referencedDeclaration":74110,"src":"2767:39:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":62542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2767:78:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62543,"nodeType":"EmitStatement","src":"2762:83:87"},{"assignments":[62545],"declarations":[{"constant":false,"id":62545,"mutability":"mutable","name":"protectionUpdateData","nameLocation":"2868:20:87","nodeType":"VariableDeclaration","scope":62578,"src":"2855:33:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62544,"name":"bytes","nodeType":"ElementaryTypeName","src":"2855:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":62553,"initialValue":{"arguments":[{"hexValue":"73657450726f74656374696f6e5570646174652862797465732c616464726573732c75696e7432353629","id":62548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2927:44:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_be88fd18776dd9af6fb9cd4738c26be4e100218fed7d44a0094148d6822e1fdd","typeString":"literal_string \"setProtectionUpdate(bytes,address,uint256)\""},"value":"setProtectionUpdate(bytes,address,uint256)"},{"id":62549,"name":"protectionUpdateData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62505,"src":"2973:21:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62550,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62509,"src":"2996:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62551,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62511,"src":"3003:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be88fd18776dd9af6fb9cd4738c26be4e100218fed7d44a0094148d6822e1fdd","typeString":"literal_string \"setProtectionUpdate(bytes,address,uint256)\""},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62546,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2903:3:87","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2907:19:87","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2903:23:87","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2903:108:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2855:156:87"},{"assignments":[62555],"declarations":[{"constant":false,"id":62555,"mutability":"mutable","name":"success","nameLocation":"3026:7:87","nodeType":"VariableDeclaration","scope":62578,"src":"3021:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":62554,"name":"bool","nodeType":"ElementaryTypeName","src":"3021:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":62564,"initialValue":{"arguments":[{"hexValue":"53657450726f74656374696f6e557064617465416374696f6e44617461","id":62557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3073:31:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_d7add75eb1668d4c725bb2a32a276677f87f61767f3c5598413f02c46d8d2e87","typeString":"literal_string \"SetProtectionUpdateActionData\""},"value":"SetProtectionUpdateActionData"},{"hexValue":"30","id":62558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3106:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":62559,"name":"protectionUpdateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62545,"src":"3109:20:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":62560,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"3131:4:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":62561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3136:9:87","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"3131:14:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":62562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3146:4:87","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"3131:19:87","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d7add75eb1668d4c725bb2a32a276677f87f61767f3c5598413f02c46d8d2e87","typeString":"literal_string \"SetProtectionUpdateActionData\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":62556,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"3048:24:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":62563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3048:103:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3021:130:87"},{"expression":{"arguments":[{"id":62566,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62555,"src":"3169:7:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a2053657450726f74656374696f6e557064617465416374696f6e44617461206661696c6564","id":62567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3178:43:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_acff07b3471dba301b56b12b3714b7398e0f0782a98f4007c9ae3c1b2ba9772d","typeString":"literal_string \"ERR: SetProtectionUpdateActionData failed\""},"value":"ERR: SetProtectionUpdateActionData failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_acff07b3471dba301b56b12b3714b7398e0f0782a98f4007c9ae3c1b2ba9772d","typeString":"literal_string \"ERR: SetProtectionUpdateActionData failed\""}],"id":62565,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3161:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3161:61:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62569,"nodeType":"ExpressionStatement","src":"3161:61:87"},{"expression":{"arguments":[{"id":62571,"name":"protectionFinanicialTermsData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62507,"src":"3260:30:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62572,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62509,"src":"3292:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62573,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62511,"src":"3299:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62574,"name":"openingFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62513,"src":"3308:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62575,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62515,"src":"3321:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62570,"name":"setProtectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62651,"src":"3232:27:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_address_$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (bytes calldata,address,uint256,uint256,address)"}},"id":62576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3232:96:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62577,"nodeType":"ExpressionStatement","src":"3232:96:87"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setProtectionUpdateData","nameLocation":"2377:23:87","parameters":{"id":62516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62505,"mutability":"mutable","name":"protectionUpdateData_","nameLocation":"2425:21:87","nodeType":"VariableDeclaration","scope":62579,"src":"2410:36:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62504,"name":"bytes","nodeType":"ElementaryTypeName","src":"2410:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62507,"mutability":"mutable","name":"protectionFinanicialTermsData_","nameLocation":"2471:30:87","nodeType":"VariableDeclaration","scope":62579,"src":"2456:45:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62506,"name":"bytes","nodeType":"ElementaryTypeName","src":"2456:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62509,"mutability":"mutable","name":"user_","nameLocation":"2519:5:87","nodeType":"VariableDeclaration","scope":62579,"src":"2511:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62508,"name":"address","nodeType":"ElementaryTypeName","src":"2511:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62511,"mutability":"mutable","name":"loanId_","nameLocation":"2542:7:87","nodeType":"VariableDeclaration","scope":62579,"src":"2534:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62510,"name":"uint256","nodeType":"ElementaryTypeName","src":"2534:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62513,"mutability":"mutable","name":"openingFee_","nameLocation":"2567:11:87","nodeType":"VariableDeclaration","scope":62579,"src":"2559:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62512,"name":"uint256","nodeType":"ElementaryTypeName","src":"2559:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62515,"mutability":"mutable","name":"token_","nameLocation":"2596:6:87","nodeType":"VariableDeclaration","scope":62579,"src":"2588:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62514,"name":"address","nodeType":"ElementaryTypeName","src":"2588:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2400:208:87"},"returnParameters":{"id":62517,"nodeType":"ParameterList","parameters":[],"src":"2629:0:87"},"scope":62730,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":62651,"nodeType":"FunctionDefinition","src":"3341:918:87","nodes":[],"body":{"id":62650,"nodeType":"Block","src":"3560:699:87","nodes":[],"statements":[{"expression":{"arguments":[{"id":62595,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62583,"src":"3595:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62592,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"3570:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3579:15:87","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"3570:24:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3570:31:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62597,"nodeType":"ExpressionStatement","src":"3570:31:87"},{"expression":{"arguments":[{"id":62601,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62589,"src":"3636:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62598,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"3611:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3620:15:87","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"3611:24:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3611:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62603,"nodeType":"ExpressionStatement","src":"3611:32:87"},{"expression":{"arguments":[{"id":62607,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62585,"src":"3675:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62604,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"3653:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3662:12:87","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"3653:21:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":62608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3653:30:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62609,"nodeType":"ExpressionStatement","src":"3653:30:87"},{"eventCall":{"arguments":[{"id":62613,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62583,"src":"3746:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62614,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62585,"src":"3753:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62615,"name":"protectionFinanicialTermsData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62581,"src":"3762:30:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":62610,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"3698:15:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":62612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3714:31:87","memberName":"ProtectionFinancialTermsDataSet","nodeType":"MemberAccess","referencedDeclaration":74118,"src":"3698:47:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":62616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3698:95:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62617,"nodeType":"EmitStatement","src":"3693:100:87"},{"assignments":[62619],"declarations":[{"constant":false,"id":62619,"mutability":"mutable","name":"protectionFTMData","nameLocation":"3816:17:87","nodeType":"VariableDeclaration","scope":62650,"src":"3803:30:87","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":62618,"name":"bytes","nodeType":"ElementaryTypeName","src":"3803:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":62627,"initialValue":{"arguments":[{"hexValue":"73657450726f74656374696f6e46696e616e6369616c5465726d732862797465732c616464726573732c75696e7432353629","id":62622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3873:52:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_19d77c1c4a677d9683c9205d5610540191668c790672d52e660b150b14ffb371","typeString":"literal_string \"setProtectionFinancialTerms(bytes,address,uint256)\""},"value":"setProtectionFinancialTerms(bytes,address,uint256)"},{"id":62623,"name":"protectionFinanicialTermsData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62581,"src":"3927:30:87","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":62624,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62583,"src":"3959:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62625,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62585,"src":"3966:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19d77c1c4a677d9683c9205d5610540191668c790672d52e660b150b14ffb371","typeString":"literal_string \"setProtectionFinancialTerms(bytes,address,uint256)\""},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62620,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3836:3:87","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3840:19:87","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3836:23:87","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":62626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3836:147:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3803:180:87"},{"assignments":[62629],"declarations":[{"constant":false,"id":62629,"mutability":"mutable","name":"success","nameLocation":"3998:7:87","nodeType":"VariableDeclaration","scope":62650,"src":"3993:12:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":62628,"name":"bool","nodeType":"ElementaryTypeName","src":"3993:4:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":62638,"initialValue":{"arguments":[{"hexValue":"53657450726f74656374696f6e46696e616e6369616c5465726d73416374696f6e","id":62631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4045:35:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_1fff2f0bf1f19e79bd7ef8222dfdf677d2513bce62aed6aa5a8a62cb7b8547aa","typeString":"literal_string \"SetProtectionFinancialTermsAction\""},"value":"SetProtectionFinancialTermsAction"},{"hexValue":"30","id":62632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4082:1:87","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":62633,"name":"protectionFTMData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62619,"src":"4085:17:87","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":62634,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"4104:4:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":62635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4109:9:87","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"4104:14:87","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":62636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4119:4:87","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"4104:19:87","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1fff2f0bf1f19e79bd7ef8222dfdf677d2513bce62aed6aa5a8a62cb7b8547aa","typeString":"literal_string \"SetProtectionFinancialTermsAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":62630,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"4020:24:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":62637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4020:104:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3993:131:87"},{"expression":{"arguments":[{"id":62640,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62629,"src":"4142:7:87","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a2053657450726f74656374696f6e46696e616e6369616c5465726d73416374696f6e206661696c6564","id":62641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4151:47:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9c21ed8cf3bc529728aca7f4acfb90b5e15e7a61296d43d0da7d582ec12d9fc","typeString":"literal_string \"ERR: SetProtectionFinancialTermsAction failed\""},"value":"ERR: SetProtectionFinancialTermsAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e9c21ed8cf3bc529728aca7f4acfb90b5e15e7a61296d43d0da7d582ec12d9fc","typeString":"literal_string \"ERR: SetProtectionFinancialTermsAction failed\""}],"id":62639,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4134:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4134:65:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62643,"nodeType":"ExpressionStatement","src":"4134:65:87"},{"expression":{"arguments":[{"id":62645,"name":"openingFee_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62587,"src":"4225:11:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62646,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62589,"src":"4238:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62647,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62583,"src":"4246:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":62644,"name":"transferToVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62729,"src":"4209:15:87","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address)"}},"id":62648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4209:43:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62649,"nodeType":"ExpressionStatement","src":"4209:43:87"}]},"implemented":true,"kind":"function","modifiers":[],"name":"setProtectionFinancialTerms","nameLocation":"3350:27:87","parameters":{"id":62590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62581,"mutability":"mutable","name":"protectionFinanicialTermsData_","nameLocation":"3402:30:87","nodeType":"VariableDeclaration","scope":62651,"src":"3387:45:87","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":62580,"name":"bytes","nodeType":"ElementaryTypeName","src":"3387:5:87","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":62583,"mutability":"mutable","name":"user_","nameLocation":"3450:5:87","nodeType":"VariableDeclaration","scope":62651,"src":"3442:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62582,"name":"address","nodeType":"ElementaryTypeName","src":"3442:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62585,"mutability":"mutable","name":"loanId_","nameLocation":"3473:7:87","nodeType":"VariableDeclaration","scope":62651,"src":"3465:15:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62584,"name":"uint256","nodeType":"ElementaryTypeName","src":"3465:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62587,"mutability":"mutable","name":"openingFee_","nameLocation":"3498:11:87","nodeType":"VariableDeclaration","scope":62651,"src":"3490:19:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62586,"name":"uint256","nodeType":"ElementaryTypeName","src":"3490:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62589,"mutability":"mutable","name":"token_","nameLocation":"3527:6:87","nodeType":"VariableDeclaration","scope":62651,"src":"3519:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62588,"name":"address","nodeType":"ElementaryTypeName","src":"3519:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3377:162:87"},"returnParameters":{"id":62591,"nodeType":"ParameterList","parameters":[],"src":"3560:0:87"},"scope":62730,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":62729,"nodeType":"FunctionDefinition","src":"4265:694:87","nodes":[],"body":{"id":62728,"nodeType":"Block","src":"4345:614:87","nodes":[],"statements":[{"expression":{"arguments":[{"id":62663,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62653,"src":"4377:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62660,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"4355:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4364:12:87","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"4355:21:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":62664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4355:29:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62665,"nodeType":"ExpressionStatement","src":"4355:29:87"},{"expression":{"arguments":[{"id":62669,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62655,"src":"4419:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":62666,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"4394:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":62668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4403:15:87","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"4394:24:87","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":62670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4394:32:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62671,"nodeType":"ExpressionStatement","src":"4394:32:87"},{"assignments":[62673],"declarations":[{"constant":false,"id":62673,"mutability":"mutable","name":"key","nameLocation":"4444:3:87","nodeType":"VariableDeclaration","scope":62728,"src":"4436:11:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":62672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4436:7:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":62681,"initialValue":{"arguments":[{"hexValue":"416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74","id":62675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4460:37:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_68d4904c32a5249d5d1cd978913c862acc7a54bd9dfd6ade46ef4f813b1595d1","typeString":"literal_string \"Address.Contracts.Vault.StreamVault\""},"value":"Address.Contracts.Vault.StreamVault"},{"arguments":[{"hexValue":"7c","id":62678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4510:3:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":62676,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4499:3:87","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":62677,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4503:6:87","memberName":"encode","nodeType":"MemberAccess","src":"4499:10:87","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":62679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4499:15:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68d4904c32a5249d5d1cd978913c862acc7a54bd9dfd6ade46ef4f813b1595d1","typeString":"literal_string \"Address.Contracts.Vault.StreamVault\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":62674,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"4450:9:87","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":62680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4450:65:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4436:79:87"},{"assignments":[62683],"declarations":[{"constant":false,"id":62683,"mutability":"mutable","name":"vaultAddress","nameLocation":"4533:12:87","nodeType":"VariableDeclaration","scope":62728,"src":"4525:20:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62682,"name":"address","nodeType":"ElementaryTypeName","src":"4525:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":62688,"initialValue":{"arguments":[{"id":62686,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62673,"src":"4575:3:87","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":62684,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"4548:15:87","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":62685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4564:10:87","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"4548:26:87","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":62687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4548:31:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4525:54:87"},{"assignments":[62690],"declarations":[{"constant":false,"id":62690,"mutability":"mutable","name":"payableVaultAddress","nameLocation":"4605:19:87","nodeType":"VariableDeclaration","scope":62728,"src":"4589:35:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":62689,"name":"address","nodeType":"ElementaryTypeName","src":"4589:15:87","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":62695,"initialValue":{"arguments":[{"id":62693,"name":"vaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62683,"src":"4635:12:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62692,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4627:8:87","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":62691,"name":"address","nodeType":"ElementaryTypeName","src":"4627:8:87","stateMutability":"payable","typeDescriptions":{}}},"id":62694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4627:21:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"4589:59:87"},{"eventCall":{"arguments":[{"id":62699,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62657,"src":"4703:5:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62700,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62655,"src":"4710:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":62701,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62653,"src":"4718:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":62702,"name":"payableVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62690,"src":"4726:19:87","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":62696,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"4663:15:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":62698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4679:23:87","memberName":"TokenTransferredToVault","nodeType":"MemberAccess","referencedDeclaration":74128,"src":"4663:39:87","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":62703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4663:83:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62704,"nodeType":"EmitStatement","src":"4658:88:87"},{"assignments":[62707],"declarations":[{"constant":false,"id":62707,"mutability":"mutable","name":"tokenContract","nameLocation":"4763:13:87","nodeType":"VariableDeclaration","scope":62728,"src":"4756:20:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"},"typeName":{"id":62706,"nodeType":"UserDefinedTypeName","pathNode":{"id":62705,"name":"IERC20","nameLocations":["4756:6:87"],"nodeType":"IdentifierPath","referencedDeclaration":45751,"src":"4756:6:87"},"referencedDeclaration":45751,"src":"4756:6:87","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"visibility":"internal"}],"id":62711,"initialValue":{"arguments":[{"id":62709,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62655,"src":"4786:6:87","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":62708,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45751,"src":"4779:6:87","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$45751_$","typeString":"type(contract IERC20)"}},"id":62710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4779:14:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"4756:37:87"},{"expression":{"arguments":[{"id":62715,"name":"payableVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62690,"src":"4825:19:87","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":62716,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62653,"src":"4846:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62712,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62707,"src":"4803:13:87","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"id":62714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4817:7:87","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":45738,"src":"4803:21:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":62717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4803:50:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":62718,"nodeType":"ExpressionStatement","src":"4803:50:87"},{"expression":{"arguments":[{"arguments":[{"id":62722,"name":"payableVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62690,"src":"4895:19:87","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":62723,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62653,"src":"4916:6:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":62720,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":62707,"src":"4872:13:87","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"id":62721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4886:8:87","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":45718,"src":"4872:22:87","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":62724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4872:51:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205472616e73666572546f6b656e6661696c6564","id":62725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4925:26:87","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c10eeef1619354f28180cefaae60c2213da843bb5313666791b82a14ffb9fdd","typeString":"literal_string \"ERR: TransferTokenfailed\""},"value":"ERR: TransferTokenfailed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c10eeef1619354f28180cefaae60c2213da843bb5313666791b82a14ffb9fdd","typeString":"literal_string \"ERR: TransferTokenfailed\""}],"id":62719,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4864:7:87","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":62726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4864:88:87","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":62727,"nodeType":"ExpressionStatement","src":"4864:88:87"}]},"implemented":true,"kind":"function","modifiers":[],"name":"transferToVault","nameLocation":"4274:15:87","parameters":{"id":62658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":62653,"mutability":"mutable","name":"value_","nameLocation":"4298:6:87","nodeType":"VariableDeclaration","scope":62729,"src":"4290:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":62652,"name":"uint256","nodeType":"ElementaryTypeName","src":"4290:7:87","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":62655,"mutability":"mutable","name":"token_","nameLocation":"4314:6:87","nodeType":"VariableDeclaration","scope":62729,"src":"4306:14:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62654,"name":"address","nodeType":"ElementaryTypeName","src":"4306:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":62657,"mutability":"mutable","name":"user_","nameLocation":"4330:5:87","nodeType":"VariableDeclaration","scope":62729,"src":"4322:13:87","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":62656,"name":"address","nodeType":"ElementaryTypeName","src":"4322:7:87","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4289:47:87"},"returnParameters":{"id":62659,"nodeType":"ParameterList","parameters":[],"src":"4345:0:87"},"scope":62730,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":62353,"name":"BlueprintBase","nameLocations":["574:13:87"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"574:13:87"},"id":62354,"nodeType":"InheritanceSpecifier","src":"574:13:87"}],"canonicalName":"ProtectionBlueprint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[62730,71548,67625,67552,71343,71416,66682],"name":"ProtectionBlueprint","nameLocation":"551:19:87","scope":62731,"usedErrors":[],"usedEvents":[74102,74110,74118,74128]}],"license":"MIT"},"id":87}
Foreclosure Blueprint
0xC6a3B8eAaEcDaD4AcEfd20A8AFe663D5051cc389
{"abi":[{"type":"constructor","inputs":[{"name":"concreteStorage_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ACL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_LENDER_MARKET","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_CONCRETE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_MASTERVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_PORTFOLIO","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_STREAMVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_ETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_USDC","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_WETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CONCRETE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_CLAIM_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_LOAN_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PORTFOLIO_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PROTECTION_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_RECEIPT_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_REWARDS_TREASURY","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_STAKING_CONTRACT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_TOKEN_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"MODULE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER_NAME_MODULES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_POSITION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ROLE_NAME_USER_TO_EXIST","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_DURATION_AND_REWARDS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_RECEIPT_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"SUDO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_CLAIM","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTIONID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_UPDATES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_BORROWDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANUPDATE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_PORTFOLIOID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"executeActionTransaction","inputs":[{"name":"actionName_","type":"string","internalType":"string"},{"name":"value_","type":"uint256","internalType":"uint256"},{"name":"data_","type":"bytes","internalType":"bytes"},{"name":"operation_","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getActionAddress","inputs":[{"name":"actionName_","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDecimals","inputs":[{"name":"priceFeedAddress_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getLatestPrice","inputs":[{"name":"priceFeedAddress_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"requestDebtToken","inputs":[{"name":"user_","type":"address","internalType":"address"},{"name":"lenderName_","type":"string","internalType":"string"},{"name":"pointer_","type":"string","internalType":"string"},{"name":"loanId_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateProtection","inputs":[{"name":"user_","type":"address","internalType":"address"},{"name":"uniqueId_","type":"uint256","internalType":"uint256"},{"name":"loanId_","type":"uint256","internalType":"uint256"},{"name":"pointer_","type":"string","internalType":"string"},{"name":"lenderName_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b50604051620050f7380380620050f783398101604081905262000034916200034f565b808080604051602001620000569067141493d513d0d3d360c21b815260080190565b60408051601f1981840301815291905280516020909101206001600160a01b038216620000d65760405162461bcd60e51b815260206004820152602360248201527f4552523a2053746f7261676520616464726573732063616e6e6f74206265207a60448201526265726f60e81b60648201526084015b60405180910390fd5b6001600160e01b031981166200012f5760405162461bcd60e51b815260206004820152601d60248201527f4552523a204e616d6573706163652063616e6e6f74206265207a65726f0000006044820152606401620000cd565b6001600160a01b039091166080526001600160e01b03191660a05250604080518082018252601681527f416464726573732e4d616e616765722e416374696f6e000000000000000000006020808301919091529151600092620001c49291620001ae91016020808252600190820152601f60fa1b604082015260600190565b60408051601f19818403018152919052620002c3565b905060006080516001600160a01b03166321f8a721836040518263ffffffff1660e01b8152600401620001f991815260200190565b602060405180830381865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d91906200034f565b604051632f47185360e11b81526001600160a01b038216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156200029457600080fd5b505af4158015620002a9573d6000803e3d6000fd5b505050506001600160a01b031660c052506200041e915050565b60a051604051631ed43b8b60e21b815260009173__$cb588f1a84862ec6179da8c4e68bd890a8$__91637b50ee2c91620003049187908790600401620003c2565b602060405180830381865af415801562000322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000348919062000404565b9392505050565b6000602082840312156200036257600080fd5b81516001600160a01b03811681146200034857600080fd5b6000815180845260005b81811015620003a25760208185018101518683018201520162000384565b506000602082860101526020601f19601f83011685010191505092915050565b63ffffffff60e01b84168152606060208201526000620003e660608301856200037a565b8281036040840152620003fa81856200037a565b9695505050505050565b6000602082840312156200041757600080fd5b5051919050565b60805160a05160c051614c55620004a260003960008181611d910152611fde0152600061262201526000818161158e0152818161169a01528181611bdc0152818161251b015281816127bf01528181612c2901528181612f31015281816131ef0152818161334c0152818161347301528181613bfb0152613f150152614c556000f3fe608060405234801561001057600080fd5b506004361061041f5760003560e01c80637d95de8e11610235578063be22fa1e11610135578063d83205c0116100c8578063e642ad3411610097578063ec11384a1161007c578063ec11384a14610e47578063f61e60f214610e83578063ffbf516314610ebf57600080fd5b8063e642ad3414610e03578063eaca386414610e3f57600080fd5b8063d83205c014610d47578063d88597de14610d83578063dbd55fb314610dbf578063e51a3bab14610dc757600080fd5b8063ccca891111610104578063ccca891114610ca2578063cf54aaa014610caa578063d017d35714610ccf578063d15263d314610d0b57600080fd5b8063be22fa1e14610c1a578063c414d4f914610c22578063c5ad787914610c2a578063ca6d5e3314610c6657600080fd5b80639d185264116101c8578063a652cb8011610197578063af895a3b1161017c578063af895a3b14610b66578063b70855fb14610ba2578063ba9a08d714610bde57600080fd5b8063a652cb8014610454578063aacb7f3414610b5e57600080fd5b80639d18526414610ad65780639e5f854214610b12578063a2fd43c514610b1a578063a5be606314610b2257600080fd5b80638d7e9e94116102045780638d7e9e9414610a6f57806391aab3e414610a9257806391b9b82714610ace57806395789e1c146104fc57600080fd5b80637d95de8e146109e75780638b3e047114610a235780638b40da7d14610a5f5780638c3e62b614610a6757600080fd5b80635532bf8111610340578063638bf74f116102d3578063724348ab116102a257806379c52aca1161028757806379c52aca146109335780637a25c9d31461096f5780637d49df3b146109ab57600080fd5b8063724348ab146108bb578063739baf49146108f757600080fd5b8063638bf74f146107ff578063678df18f1461083b578063697e744c146108775780636a0b3f641461087f57600080fd5b80635f39ca221161030f5780635f39ca221461070f578063608dade91461074b57806361945bfc1461078757806362a4c3df146107c357600080fd5b80635532bf81146106b057806359dcf3f6146106c35780635e209249146106ff5780635e61dc381461070757600080fd5b806326026d18116103b8578063420ea36011610387578063420ea360146105c0578063423ac8d9146105fc57806342ff308b14610638578063430c6fe61461067457600080fd5b806326026d1814610504578063264c1356146105405780632a0f4d6b1461057c5780632d1da17e1461058457600080fd5b80630e494332116103f45780630e4943321461049857806316345f18146104d45780631e55b1d6146104e757806325889b22146104fc57600080fd5b806272e14014610424578062a9d96e1461043f578063057afbfe14610454578063094d3a3414610490575b600080fd5b61042c610ef7565b6040519081526020015b60405180910390f35b610447610f5c565b604051610436919061413a565b6104476040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b61042c610f78565b6104476040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b61042c6104e2366004614172565b610fa9565b6104fa6104f53660046142ff565b611037565b005b61042c611364565b6104476040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6104476040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b61042c611395565b6104476040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6104476040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6104476040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6104476040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6104476040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6104fa6106be366004614389565b6113c6565b6104476040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b61042c6119c0565b6104476119f1565b6104476040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6104476040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6104476040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6104476040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6104476040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6104476040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b610447611a0d565b6104476040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b6104476040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6104476040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6104476040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6104476040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b6104476040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6104476040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6104476040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b61042c611a29565b61042c611a5a565b610a82610a7d366004614407565b611a8b565b6040519015158152602001610436565b6104476040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b61042c611de7565b6104476040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b610447611e18565b610447611e34565b6104476040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b610447611e50565b6104476040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6104476040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6104476040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b610447611e6c565b610447611e88565b6104476040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6104476040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b61042c611ea4565b610cbd610cb8366004614172565b611ed5565b60405160ff9091168152602001610436565b6104476040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6104476040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6104476040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6104476040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b61042c611f51565b6104476040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6104476040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b610447611f82565b6104476040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6104476040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610ed2610ecd36600461449f565b611f9e565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610436565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b604051806060016040528060248152602001614c316024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610f24565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102091906144f3565b50505091505061102f8161205c565b949350505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156110b057600080fd5b505af41580156110c4573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561112a57600080fd5b505af415801561113e573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b1580156111a457600080fd5b505af41580156111b8573d6000803e3d6000fd5b5050604080514260208201526000818301819052606080830182905283518084039091018152608083019093529193509091506112009083908990889060049060a401614572565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f27365747000000000000000000000000000000000000000000000000000000001790528151808301909252601682527f55706461746550726f74656374696f6e416374696f6e00000000000000000000908201529091506000906112ba90828481611a8b565b90508061134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a2055706461746550726f74656374696f6e416374696f6e206661696c60448201527f656400000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61135a888588886120f2565b5050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610f24565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610f24565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561143f57600080fd5b505af4158015611453573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b1580156114b957600080fd5b505af41580156114cd573d6000803e3d6000fd5b505050506000611544604051806060016040528060238152602001614b95602391396040516020016115309060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040516020818303038152906040526125d7565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f991906145fa565b90506000611607878561268f565b90506000611650866040516020016115309060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa1580156116e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170591906145fa565b9050600061171f8a898b87608001518860c001518c61286b565b608085015190915073ffffffffffffffffffffffffffffffffffffffff811663095ea7b361174e8d8d8c612bc3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018590526044016020604051808303816000875af11580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e49190614617565b50600085608001516117f78d8d8c612bc3565b60405173ffffffffffffffffffffffffffffffffffffffff9283166024820152908216604482015290881660648201526084810184905260a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c54de4f000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f5472616e73666572546f6b656e416374696f6e00000000000000000000000000908201529091506000906118eb90828481611a8b565b905080611954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a205472616e73666572546f6b656e416374696f6e206661696c6564006044820152606401611345565b60808781015160c08901516040805173ffffffffffffffffffffffffffffffffffffffff808b1660208301529093169083015260608201529081018590526119b19060a0016040516020818303038152906040528d8f8d8f612d56565b50505050505050505050505050565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610f24565b604051806060016040528060298152602001614bb86029913981565b604051806060016040528060238152602001614b956023913981565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610f24565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610f24565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611b24907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611baa91606001611530565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5c9190614617565b611ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401611345565b600088308989896001811115611d0057611d00614543565b604051602401611d14959493929190614639565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b05000000000000000000000000000000000000000000000000000000001790529050611dda7f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612fe0565b9998505050505050505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610f24565b604051806060016040528060258152602001614b276025913981565b604051806060016040528060288152602001614b4c6028913981565b6040518060600160405280602b8152602001614c06602b913981565b604051806060016040528060218152602001614b746021913981565b604051806060016040528060258152602001614be16025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610f24565b6000808290508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4a91906146a7565b9392505050565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610f24565b604051806060016040528060248152602001614b036024913981565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb9061201590859030906004016146c2565b602060405180830381865afa158015612032573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205691906145fa565b92915050565b6000808212156120ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4552523a2043616e6e6f7420636f6e766572742061206e65676174697665206e60448201527f756d62657220746f20616e20756e7369676e6564206e756d62657200000000006064820152608401611345565b5090565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561216b57600080fd5b505af415801561217f573d6000803e3d6000fd5b50505050600061218f85846130bb565b905060006121ab8260c001518361010001518460e00151613292565b60a083015160e08401516040517fe9db0bb60000000000000000000000000000000000000000000000000000000081526004810192909252602482018390526305f5e100604483018190526064830152600a18608482015290915060009073__$6f3bb55dcef4043805ff849f911f80739c$__9063e9db0bb69060a401602060405180830381865af4158015612245573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226991906146fa565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810182905290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b1580156122ce57600080fd5b505af41580156122e2573d6000803e3d6000fd5b5050505060006122f18561346f565b60c08501516040805173ffffffffffffffffffffffffffffffffffffffff938416602082015292909116908201526060810183905230608082015260a001604051602081830303815290604052905060008160006123508b8b8b612bc3565b60405160240161236293929190614713565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f135390f9000000000000000000000000000000000000000000000000000000001790528151808301909252600e82527f5769746864726177416374696f6e0000000000000000000000000000000000009082015290915060009061241c90828481611a8b565b905080612485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401611345565b60006124d16040518060600160405280602b8152602001614c06602b91396040805173ffffffffffffffffffffffffffffffffffffffff8f1660208201529081018c9052606001611530565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612562573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526125a89190810190614785565b905080516000036125bf576125bf8c8a8d8d613510565b6125c98c8b613645565b505050505050505050505050565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c9061264e907f000000000000000000000000000000000000000000000000000000000000000090879087906004016147ce565b602060405180830381865af415801561266b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4a91906146fa565b6127066040518061010001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600060ff1681525090565b60006127756040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f7744617461000000000000000000815250858560405160200161153092919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612806573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261284c9190810190614785565b905080806020019051810190612862919061481b565b95945050505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716600482015260009073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156128e757600080fd5b505af41580156128fb573d6000803e3d6000fd5b50505050600061290a8761346f565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561298657600080fd5b505af415801561299a573d6000803e3d6000fd5b5050505060008186866129ae8c8b89612bc3565b6040805173ffffffffffffffffffffffffffffffffffffffff9586166020820152938516908401526060830191909152909116608082015260a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052612a249160240161413a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4894f742000000000000000000000000000000000000000000000000000000001790529050600080612aaa8b8a88612bc3565b73ffffffffffffffffffffffffffffffffffffffff1683604051612ace91906148a2565b600060405180830381855afa9150503d8060008114612b09576040519150601f19603f3d011682016040523d82523d6000602084013e612b0e565b606091505b509150915081612ba0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a2043616c6c20746f2075736572426c75657072696e74206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401611345565b80806020019051810190612bb491906146fa565b9b9a5050505050505050505050565b600080612bf7604051806060016040528060288152602001614b4c60289139868686604051602001611530939291906148be565b6040517f21f8a721000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa158015612c85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca991906145fa565b915073ffffffffffffffffffffffffffffffffffffffff8216612d4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a205573657220446f6573204e6f74204861766520426c75657072696e60448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401611345565b509392505050565b6000856000612d66868887612bc3565b604051602401612d7893929190614713565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd09d1c0c000000000000000000000000000000000000000000000000000000001790528151808301909252600b82527f5265706179416374696f6e00000000000000000000000000000000000000000090820152909150600090612e3290828481611a8b565b905080612e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401611345565b6000612ee76040518060600160405280602b8152602001614c06602b91396040805173ffffffffffffffffffffffffffffffffffffffff8a166020820152908101889052606001611530565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612f78573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612fbe9190810190614785565b90508051600003612fd557612fd5878988886120f2565b505050505050505050565b600080836001811115612ff557612ff5614543565b14806130125750600183600181111561301057613010614543565b145b613078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e207479706500000000006044820152606401611345565b600183600181111561308c5761308c614543565b036130a4576000808551602087018986f49050612862565b600080855160208701888a87f19695505050505050565b61313660405180610120016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b60006131a56040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c79446174610000000000815250858560405160200161153092919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015613236573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261327c9190810190614785565b905080806020019051810190612862919061491d565b6000806133026040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e507269636546656564000000815250868660405160200161153092919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b791906145fa565b905073ffffffffffffffffffffffffffffffffffffffff811661345c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a20507269636520466565642041646472657373204e6f7420466f756e60448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401611345565b61346581610fa9565b9695505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166321f8a7216134f2846040516020016115309060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040518263ffffffff1660e01b815260040161201591815260200190565b60008061351f86848787613905565b6040517e38795f00000000000000000000000000000000000000000000000000000000815260048101839052919350915073__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b15801561358657600080fd5b505af415801561359a573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561360057600080fd5b505af4158015613614573d6000803e3d6000fd5b50505050600081836136269190614a1b565b9050600061363488866130bb565b905061135a82898360c00151613ad8565b600061365183836130bb565b9050600061365f8484613e37565b9050600061367b8360c001518461010001518560e00151613292565b9050600061368d836000015183613fb8565b9050600083602001518211156138355760008460200151836136af9190614a1b565b6040517f4da609f600000000000000000000000000000000000000000000000000000000815260048101829052602481018690526305f5e1006044820181905260648201819052608482015290915060009073__$6f3bb55dcef4043805ff849f911f80739c$__90634da609f69060a401602060405180830381865af415801561373d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376191906146fa565b905073__$6f3bb55dcef4043805ff849f911f80739c$__634da609f682886000015161378d9190614a2e565b60e08a8101516040519184901b7fffffffff000000000000000000000000000000000000000000000000000000001682526004820192909252602481018990526305f5e100604482018190526064820152600a909118608482015260a401602060405180830381865af4158015613808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382c91906146fa565b925050506138ed565b835160e08601516040517f4da609f60000000000000000000000000000000000000000000000000000000081526004810192909252602482018590526305f5e100604483018190526064830152600a18608482015273__$6f3bb55dcef4043805ff849f911f80739c$__90634da609f69060a401602060405180830381865af41580156138c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138ea91906146fa565b90505b6138fc81888760c00151613ad8565b50505050505050565b6000806000613914878761268f565b9050600061392e88878785608001518660c001518c61286b565b90506000806000806139408c8c6130bb565b905061395a8160c001518261010001518360e00151613292565b915061397786608001518261010001518860e0015160ff16613292565b925060006139898260a0015186613fb8565b6040517fae16e855000000000000000000000000000000000000000000000000000000008152600481018290526024810187905290915073__$6f3bb55dcef4043805ff849f911f80739c$__9063ae16e85590604401602060405180830381865af41580156139fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a2091906146fa565b98506000613a2e8786613fb8565b6040517fae16e855000000000000000000000000000000000000000000000000000000008152600481018290526024810187905290915073__$6f3bb55dcef4043805ff849f911f80739c$__9063ae16e85590604401602060405180830381865af4158015613aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac591906146fa565b9850505050505050505094509492505050565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b158015613b3a57600080fd5b505af4158015613b4e573d6000803e3d6000fd5b505050506000613bb1604051806060016040528060238152602001614b95602391396040516020016115309060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6691906145fa565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015260248201889052919250849182169063a9059cbb906044016020604051808303816000875af1158015613ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d049190614617565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015613d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d9691906146fa565b905080156138fc576040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820183905283169063a9059cbb906044016020604051808303816000875af1158015613e13573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135a9190614617565b613e7f60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000613ecb6040518060600160405280602b8152602001614c06602b91396040805173ffffffffffffffffffffffffffffffffffffffff88166020820152908101869052606001611530565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015613f5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613fa29190810190614785565b9050808060200190518101906128629190614a41565b6000808311614023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401611345565b600082116140b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f546f6b656e207072696365206d7573742062652067726561746572207468616e60448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401611345565b816140c26305f5e10085614ab0565b611f4a9190614ac7565b60005b838110156140e75781810151838201526020016140cf565b50506000910152565b600081518084526141088160208601602086016140cc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f4a60208301846140f0565b73ffffffffffffffffffffffffffffffffffffffff8116811461416f57600080fd5b50565b60006020828403121561418457600080fd5b8135611f4a8161414d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610100810167ffffffffffffffff811182821017156141e2576141e261418f565b60405290565b604051610120810167ffffffffffffffff811182821017156141e2576141e261418f565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156142535761425361418f565b604052919050565b600067ffffffffffffffff8211156142755761427561418f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60006142b46142af8461425b565b61420c565b90508281528383830111156142c857600080fd5b828260208301376000602084830101529392505050565b600082601f8301126142f057600080fd5b611f4a838335602085016142a1565b600080600080600060a0868803121561431757600080fd5b85356143228161414d565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561434d57600080fd5b61435989838a016142df565b9350608088013591508082111561436f57600080fd5b5061437c888289016142df565b9150509295509295909350565b6000806000806080858703121561439f57600080fd5b84356143aa8161414d565b9350602085013567ffffffffffffffff808211156143c757600080fd5b6143d3888389016142df565b945060408701359150808211156143e957600080fd5b506143f6878288016142df565b949793965093946060013593505050565b6000806000806080858703121561441d57600080fd5b843567ffffffffffffffff8082111561443557600080fd5b614441888389016142df565b955060208701359450604087013591508082111561445e57600080fd5b508501601f8101871361447057600080fd5b61447f878235602084016142a1565b92505060608501356002811061449457600080fd5b939692955090935050565b6000602082840312156144b157600080fd5b813567ffffffffffffffff8111156144c857600080fd5b61102f848285016142df565b805169ffffffffffffffffffff811681146144ee57600080fd5b919050565b600080600080600060a0868803121561450b57600080fd5b614514866144d4565b9450602086015193506040860151925060608601519150614537608087016144d4565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60808152600061458560808301876140f0565b905073ffffffffffffffffffffffffffffffffffffffff85166020830152836040830152600583106145e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82606083015295945050505050565b80516144ee8161414d565b60006020828403121561460c57600080fd5b8151611f4a8161414d565b60006020828403121561462957600080fd5b81518015158114611f4a57600080fd5b60a08152600061464c60a08301886140f0565b73ffffffffffffffffffffffffffffffffffffffff87166020840152856040840152828103606084015261468081866140f0565b91505060ff831660808301529695505050505050565b805160ff811681146144ee57600080fd5b6000602082840312156146b957600080fd5b611f4a82614696565b6040815260006146d560408301856140f0565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b60006020828403121561470c57600080fd5b5051919050565b60608152600061472660608301866140f0565b905060ff8416602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b60006147636142af8461425b565b905082815283838301111561477757600080fd5b611f4a8360208301846140cc565b60006020828403121561479757600080fd5b815167ffffffffffffffff8111156147ae57600080fd5b8201601f810184136147bf57600080fd5b61102f84825160208401614755565b7fffffffff000000000000000000000000000000000000000000000000000000008416815260606020820152600061480960608301856140f0565b828103604084015261346581856140f0565b6000610100828403121561482e57600080fd5b6148366141be565b825181526020830151602082015260408301516148528161414d565b604082015260608381015190820152608083015161486f8161414d565b8060808301525060a083015160a082015260c083015160c082015261489660e08401614696565b60e08201529392505050565b600082516148b48184602087016140cc565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006148ed60608301856140f0565b9050826040830152949350505050565b600082601f83011261490e57600080fd5b611f4a83835160208501614755565b60006020828403121561492f57600080fd5b815167ffffffffffffffff8082111561494757600080fd5b90830190610120828603121561495c57600080fd5b6149646141e8565b82518152614974602084016145ef565b6020820152604083015160408201526060830151606082015260808301518281111561499f57600080fd5b6149ab878286016148fd565b60808301525060a083015160a08201526149c760c084016145ef565b60c082015260e083810151908201526101009283015192810192909252509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115612056576120566149ec565b80820180821115612056576120566149ec565b60006101008284031215614a5457600080fd5b614a5c6141be565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201528091505092915050565b8082028115828204841417612056576120566149ec565b600082614afd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"959:13504:84:-:0;;;1034:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1086:16;536::139;458::108;493:28;;;;;;-1:-1:-1;;;511:23:249;;559:1;550:11;;309:258;493:28:108;;;;-1:-1:-1;;493:28:108;;;;;;;;;483:39;;493:28;483:39;;;;-1:-1:-1;;;;;897:29:138;;889:77;;;;-1:-1:-1;;;889:77:138;;774:2:249;889:77:138;;;756:21:249;813:2;793:18;;;786:30;852:34;832:18;;;825:62;-1:-1:-1;;;903:18:249;;;896:33;946:19;;889:77:138;;;;;;;;;-1:-1:-1;;;;;;984:23:138;;976:65;;;;-1:-1:-1;;;976:65:138;;1178:2:249;976:65:138;;;1160:21:249;1217:2;1197:18;;;1190:30;1256:31;1236:18;;;1229:59;1305:18;;976:65:138;:353:249;:65:138;-1:-1:-1;;;;;1051:51:138;;;;;-1:-1:-1;;;;;;1112:22:138;;;-1:-1:-1;588:22:139::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;;612:15;;564:11:::1;::::0;578:50:::1;::::0;588:22;612:15:::1;::::0;::::1;1536:2:249::0;1518:21;;;1575:1;1555:18;;;1548:29;-1:-1:-1;;;1608:2:249;1593:18;;1586:31;1649:2;1634:18;;1334:324;612:15:139::1;;::::0;;-1:-1:-1;;612:15:139;;::::1;::::0;;;;;;578:9:::1;:50::i;:::-;564:64;;638:12;653:15;;-1:-1:-1::0;;;;;653:26:139::1;;680:3;653:31;;;;;;;;;;;;;1809:25:249::0;;1797:2;1782:18;;1663:177;653:31:139::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:30;::::0;-1:-1:-1;;;694:30:139;;-1:-1:-1;;;;;2017:32:249;;694:30:139::1;::::0;::::1;1999:51:249::0;638:46:139;;-1:-1:-1;694:8:139::1;::::0;:24:::1;::::0;1972:18:249;;694:30:139::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;734:42:139::1;;::::0;-1:-1:-1;959:13504:84;;-1:-1:-1;;959:13504:84;1180:170:138;1316:9;;1292:51;;-1:-1:-1;;;1292:51:138;;1266:7;;1292:13;;:23;;:51;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:138:o;14:290:249:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:249;;214:42;;204:70;;270:1;267;260:12;2061:423;2103:3;2141:5;2135:12;2168:6;2163:3;2156:19;2193:1;2203:162;2217:6;2214:1;2211:13;2203:162;;;2279:4;2335:13;;;2331:22;;2325:29;2307:11;;;2303:20;;2296:59;2232:12;2203:162;;;2207:3;2410:1;2403:4;2394:6;2389:3;2385:16;2381:27;2374:38;2473:4;2466:2;2462:7;2457:2;2449:6;2445:15;2441:29;2436:3;2432:39;2428:50;2421:57;;;2061:423;;;;:::o;2489:485::-;2739:10;2734:3;2730:20;2722:6;2718:33;2707:9;2700:52;2788:2;2783;2772:9;2768:18;2761:30;2681:4;2814:45;2855:2;2844:9;2840:18;2832:6;2814:45;:::i;:::-;2907:9;2899:6;2895:22;2890:2;2879:9;2875:18;2868:50;2935:33;2961:6;2953;2935:33;:::i;:::-;2927:41;2489:485;-1:-1:-1;;;;;;2489:485:249:o;2979:184::-;3049:6;3102:2;3090:9;3081:7;3077:23;3073:32;3070:52;;;3118:1;3115;3108:12;3070:52;-1:-1:-1;3141:16:249;;2979:184;-1:-1:-1;2979:184:249:o;:::-;959:13504:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/Conversion.sol":{"Conversion":[{"start":9901,"length":20},{"start":15269,"length":20},{"start":15367,"length":20},{"start":15662,"length":20},{"start":15972,"length":20},{"start":16137,"length":20}]},"src/libraries/Security.sol":{"Security":[{"start":606,"length":20},{"start":5405,"length":20},{"start":5526,"length":20},{"start":5648,"length":20},{"start":6316,"length":20},{"start":6437,"length":20},{"start":9688,"length":20},{"start":10044,"length":20},{"start":11604,"length":20},{"start":11763,"length":20},{"start":14836,"length":20},{"start":14956,"length":20},{"start":16296,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":728,"length":20},{"start":10916,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061041f5760003560e01c80637d95de8e11610235578063be22fa1e11610135578063d83205c0116100c8578063e642ad3411610097578063ec11384a1161007c578063ec11384a14610e47578063f61e60f214610e83578063ffbf516314610ebf57600080fd5b8063e642ad3414610e03578063eaca386414610e3f57600080fd5b8063d83205c014610d47578063d88597de14610d83578063dbd55fb314610dbf578063e51a3bab14610dc757600080fd5b8063ccca891111610104578063ccca891114610ca2578063cf54aaa014610caa578063d017d35714610ccf578063d15263d314610d0b57600080fd5b8063be22fa1e14610c1a578063c414d4f914610c22578063c5ad787914610c2a578063ca6d5e3314610c6657600080fd5b80639d185264116101c8578063a652cb8011610197578063af895a3b1161017c578063af895a3b14610b66578063b70855fb14610ba2578063ba9a08d714610bde57600080fd5b8063a652cb8014610454578063aacb7f3414610b5e57600080fd5b80639d18526414610ad65780639e5f854214610b12578063a2fd43c514610b1a578063a5be606314610b2257600080fd5b80638d7e9e94116102045780638d7e9e9414610a6f57806391aab3e414610a9257806391b9b82714610ace57806395789e1c146104fc57600080fd5b80637d95de8e146109e75780638b3e047114610a235780638b40da7d14610a5f5780638c3e62b614610a6757600080fd5b80635532bf8111610340578063638bf74f116102d3578063724348ab116102a257806379c52aca1161028757806379c52aca146109335780637a25c9d31461096f5780637d49df3b146109ab57600080fd5b8063724348ab146108bb578063739baf49146108f757600080fd5b8063638bf74f146107ff578063678df18f1461083b578063697e744c146108775780636a0b3f641461087f57600080fd5b80635f39ca221161030f5780635f39ca221461070f578063608dade91461074b57806361945bfc1461078757806362a4c3df146107c357600080fd5b80635532bf81146106b057806359dcf3f6146106c35780635e209249146106ff5780635e61dc381461070757600080fd5b806326026d18116103b8578063420ea36011610387578063420ea360146105c0578063423ac8d9146105fc57806342ff308b14610638578063430c6fe61461067457600080fd5b806326026d1814610504578063264c1356146105405780632a0f4d6b1461057c5780632d1da17e1461058457600080fd5b80630e494332116103f45780630e4943321461049857806316345f18146104d45780631e55b1d6146104e757806325889b22146104fc57600080fd5b806272e14014610424578062a9d96e1461043f578063057afbfe14610454578063094d3a3414610490575b600080fd5b61042c610ef7565b6040519081526020015b60405180910390f35b610447610f5c565b604051610436919061413a565b6104476040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b61042c610f78565b6104476040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b61042c6104e2366004614172565b610fa9565b6104fa6104f53660046142ff565b611037565b005b61042c611364565b6104476040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6104476040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b61042c611395565b6104476040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6104476040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6104476040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6104476040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6104476040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6104fa6106be366004614389565b6113c6565b6104476040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b61042c6119c0565b6104476119f1565b6104476040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6104476040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6104476040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6104476040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6104476040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6104476040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b610447611a0d565b6104476040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b6104476040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6104476040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6104476040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6104476040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b6104476040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6104476040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6104476040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b61042c611a29565b61042c611a5a565b610a82610a7d366004614407565b611a8b565b6040519015158152602001610436565b6104476040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b61042c611de7565b6104476040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b610447611e18565b610447611e34565b6104476040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b610447611e50565b6104476040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6104476040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6104476040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b610447611e6c565b610447611e88565b6104476040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6104476040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b61042c611ea4565b610cbd610cb8366004614172565b611ed5565b60405160ff9091168152602001610436565b6104476040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6104476040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6104476040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6104476040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b61042c611f51565b6104476040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6104476040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b610447611f82565b6104476040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6104476040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610ed2610ecd36600461449f565b611f9e565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610436565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b604051806060016040528060248152602001614c316024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610f24565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610ffc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102091906144f3565b50505091505061102f8161205c565b949350505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8616600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156110b057600080fd5b505af41580156110c4573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561112a57600080fd5b505af415801561113e573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b1580156111a457600080fd5b505af41580156111b8573d6000803e3d6000fd5b5050604080514260208201526000818301819052606080830182905283518084039091018152608083019093529193509091506112009083908990889060049060a401614572565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f27365747000000000000000000000000000000000000000000000000000000001790528151808301909252601682527f55706461746550726f74656374696f6e416374696f6e00000000000000000000908201529091506000906112ba90828481611a8b565b90508061134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a2055706461746550726f74656374696f6e416374696f6e206661696c60448201527f656400000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61135a888588886120f2565b5050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610f24565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610f24565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561143f57600080fd5b505af4158015611453573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b1580156114b957600080fd5b505af41580156114cd573d6000803e3d6000fd5b505050506000611544604051806060016040528060238152602001614b95602391396040516020016115309060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040516020818303038152906040526125d7565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa1580156115d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115f991906145fa565b90506000611607878561268f565b90506000611650866040516020016115309060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa1580156116e1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170591906145fa565b9050600061171f8a898b87608001518860c001518c61286b565b608085015190915073ffffffffffffffffffffffffffffffffffffffff811663095ea7b361174e8d8d8c612bc3565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018590526044016020604051808303816000875af11580156117c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e49190614617565b50600085608001516117f78d8d8c612bc3565b60405173ffffffffffffffffffffffffffffffffffffffff9283166024820152908216604482015290881660648201526084810184905260a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c54de4f000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f5472616e73666572546f6b656e416374696f6e00000000000000000000000000908201529091506000906118eb90828481611a8b565b905080611954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a205472616e73666572546f6b656e416374696f6e206661696c6564006044820152606401611345565b60808781015160c08901516040805173ffffffffffffffffffffffffffffffffffffffff808b1660208301529093169083015260608201529081018590526119b19060a0016040516020818303038152906040528d8f8d8f612d56565b50505050505050505050505050565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610f24565b604051806060016040528060298152602001614bb86029913981565b604051806060016040528060238152602001614b956023913981565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610f24565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610f24565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611b24907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611baa91606001611530565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611c38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5c9190614617565b611ce8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401611345565b600088308989896001811115611d0057611d00614543565b604051602401611d14959493929190614639565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b05000000000000000000000000000000000000000000000000000000001790529050611dda7f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612fe0565b9998505050505050505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610f24565b604051806060016040528060258152602001614b276025913981565b604051806060016040528060288152602001614b4c6028913981565b6040518060600160405280602b8152602001614c06602b913981565b604051806060016040528060218152602001614b746021913981565b604051806060016040528060258152602001614be16025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610f24565b6000808290508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4a91906146a7565b9392505050565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610f24565b604051806060016040528060248152602001614b036024913981565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb9061201590859030906004016146c2565b602060405180830381865afa158015612032573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205691906145fa565b92915050565b6000808212156120ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4552523a2043616e6e6f7420636f6e766572742061206e65676174697665206e60448201527f756d62657220746f20616e20756e7369676e6564206e756d62657200000000006064820152608401611345565b5090565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561216b57600080fd5b505af415801561217f573d6000803e3d6000fd5b50505050600061218f85846130bb565b905060006121ab8260c001518361010001518460e00151613292565b60a083015160e08401516040517fe9db0bb60000000000000000000000000000000000000000000000000000000081526004810192909252602482018390526305f5e100604483018190526064830152600a18608482015290915060009073__$6f3bb55dcef4043805ff849f911f80739c$__9063e9db0bb69060a401602060405180830381865af4158015612245573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061226991906146fa565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810182905290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b1580156122ce57600080fd5b505af41580156122e2573d6000803e3d6000fd5b5050505060006122f18561346f565b60c08501516040805173ffffffffffffffffffffffffffffffffffffffff938416602082015292909116908201526060810183905230608082015260a001604051602081830303815290604052905060008160006123508b8b8b612bc3565b60405160240161236293929190614713565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f135390f9000000000000000000000000000000000000000000000000000000001790528151808301909252600e82527f5769746864726177416374696f6e0000000000000000000000000000000000009082015290915060009061241c90828481611a8b565b905080612485576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401611345565b60006124d16040518060600160405280602b8152602001614c06602b91396040805173ffffffffffffffffffffffffffffffffffffffff8f1660208201529081018c9052606001611530565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612562573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526125a89190810190614785565b905080516000036125bf576125bf8c8a8d8d613510565b6125c98c8b613645565b505050505050505050505050565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c9061264e907f000000000000000000000000000000000000000000000000000000000000000090879087906004016147ce565b602060405180830381865af415801561266b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4a91906146fa565b6127066040518061010001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600060ff1681525090565b60006127756040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f7744617461000000000000000000815250858560405160200161153092919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612806573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261284c9190810190614785565b905080806020019051810190612862919061481b565b95945050505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716600482015260009073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156128e757600080fd5b505af41580156128fb573d6000803e3d6000fd5b50505050600061290a8761346f565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561298657600080fd5b505af415801561299a573d6000803e3d6000fd5b5050505060008186866129ae8c8b89612bc3565b6040805173ffffffffffffffffffffffffffffffffffffffff9586166020820152938516908401526060830191909152909116608082015260a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815290829052612a249160240161413a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4894f742000000000000000000000000000000000000000000000000000000001790529050600080612aaa8b8a88612bc3565b73ffffffffffffffffffffffffffffffffffffffff1683604051612ace91906148a2565b600060405180830381855afa9150503d8060008114612b09576040519150601f19603f3d011682016040523d82523d6000602084013e612b0e565b606091505b509150915081612ba0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a2043616c6c20746f2075736572426c75657072696e74206661696c6560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401611345565b80806020019051810190612bb491906146fa565b9b9a5050505050505050505050565b600080612bf7604051806060016040528060288152602001614b4c60289139868686604051602001611530939291906148be565b6040517f21f8a721000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa158015612c85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ca991906145fa565b915073ffffffffffffffffffffffffffffffffffffffff8216612d4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a205573657220446f6573204e6f74204861766520426c75657072696e60448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401611345565b509392505050565b6000856000612d66868887612bc3565b604051602401612d7893929190614713565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd09d1c0c000000000000000000000000000000000000000000000000000000001790528151808301909252600b82527f5265706179416374696f6e00000000000000000000000000000000000000000090820152909150600090612e3290828481611a8b565b905080612e9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f457865637574696f6e206661696c6564000000000000000000000000000000006044820152606401611345565b6000612ee76040518060600160405280602b8152602001614c06602b91396040805173ffffffffffffffffffffffffffffffffffffffff8a166020820152908101889052606001611530565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612f78573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612fbe9190810190614785565b90508051600003612fd557612fd5878988886120f2565b505050505050505050565b600080836001811115612ff557612ff5614543565b14806130125750600183600181111561301057613010614543565b145b613078576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e207479706500000000006044820152606401611345565b600183600181111561308c5761308c614543565b036130a4576000808551602087018986f49050612862565b600080855160208701888a87f19695505050505050565b61313660405180610120016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b60006131a56040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c79446174610000000000815250858560405160200161153092919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015613236573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261327c9190810190614785565b905080806020019051810190612862919061491d565b6000806133026040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e507269636546656564000000815250868660405160200161153092919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613393573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b791906145fa565b905073ffffffffffffffffffffffffffffffffffffffff811661345c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a20507269636520466565642041646472657373204e6f7420466f756e60448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401611345565b61346581610fa9565b9695505050505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166321f8a7216134f2846040516020016115309060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040518263ffffffff1660e01b815260040161201591815260200190565b60008061351f86848787613905565b6040517e38795f00000000000000000000000000000000000000000000000000000000815260048101839052919350915073__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b15801561358657600080fd5b505af415801561359a573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561360057600080fd5b505af4158015613614573d6000803e3d6000fd5b50505050600081836136269190614a1b565b9050600061363488866130bb565b905061135a82898360c00151613ad8565b600061365183836130bb565b9050600061365f8484613e37565b9050600061367b8360c001518461010001518560e00151613292565b9050600061368d836000015183613fb8565b9050600083602001518211156138355760008460200151836136af9190614a1b565b6040517f4da609f600000000000000000000000000000000000000000000000000000000815260048101829052602481018690526305f5e1006044820181905260648201819052608482015290915060009073__$6f3bb55dcef4043805ff849f911f80739c$__90634da609f69060a401602060405180830381865af415801561373d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061376191906146fa565b905073__$6f3bb55dcef4043805ff849f911f80739c$__634da609f682886000015161378d9190614a2e565b60e08a8101516040519184901b7fffffffff000000000000000000000000000000000000000000000000000000001682526004820192909252602481018990526305f5e100604482018190526064820152600a909118608482015260a401602060405180830381865af4158015613808573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382c91906146fa565b925050506138ed565b835160e08601516040517f4da609f60000000000000000000000000000000000000000000000000000000081526004810192909252602482018590526305f5e100604483018190526064830152600a18608482015273__$6f3bb55dcef4043805ff849f911f80739c$__90634da609f69060a401602060405180830381865af41580156138c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138ea91906146fa565b90505b6138fc81888760c00151613ad8565b50505050505050565b6000806000613914878761268f565b9050600061392e88878785608001518660c001518c61286b565b90506000806000806139408c8c6130bb565b905061395a8160c001518261010001518360e00151613292565b915061397786608001518261010001518860e0015160ff16613292565b925060006139898260a0015186613fb8565b6040517fae16e855000000000000000000000000000000000000000000000000000000008152600481018290526024810187905290915073__$6f3bb55dcef4043805ff849f911f80739c$__9063ae16e85590604401602060405180830381865af41580156139fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a2091906146fa565b98506000613a2e8786613fb8565b6040517fae16e855000000000000000000000000000000000000000000000000000000008152600481018290526024810187905290915073__$6f3bb55dcef4043805ff849f911f80739c$__9063ae16e85590604401602060405180830381865af4158015613aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ac591906146fa565b9850505050505050505094509492505050565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b158015613b3a57600080fd5b505af4158015613b4e573d6000803e3d6000fd5b505050506000613bb1604051806060016040528060238152602001614b95602391396040516020016115309060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c6691906145fa565b6040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015260248201889052919250849182169063a9059cbb906044016020604051808303816000875af1158015613ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d049190614617565b506040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015613d72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d9691906146fa565b905080156138fc576040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301526024820183905283169063a9059cbb906044016020604051808303816000875af1158015613e13573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135a9190614617565b613e7f60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000613ecb6040518060600160405280602b8152602001614c06602b91396040805173ffffffffffffffffffffffffffffffffffffffff88166020820152908101869052606001611530565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015613f5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613fa29190810190614785565b9050808060200190518101906128629190614a41565b6000808311614023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401611345565b600082116140b3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f546f6b656e207072696365206d7573742062652067726561746572207468616e60448201527f207a65726f0000000000000000000000000000000000000000000000000000006064820152608401611345565b816140c26305f5e10085614ab0565b611f4a9190614ac7565b60005b838110156140e75781810151838201526020016140cf565b50506000910152565b600081518084526141088160208601602086016140cc565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f4a60208301846140f0565b73ffffffffffffffffffffffffffffffffffffffff8116811461416f57600080fd5b50565b60006020828403121561418457600080fd5b8135611f4a8161414d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610100810167ffffffffffffffff811182821017156141e2576141e261418f565b60405290565b604051610120810167ffffffffffffffff811182821017156141e2576141e261418f565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156142535761425361418f565b604052919050565b600067ffffffffffffffff8211156142755761427561418f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60006142b46142af8461425b565b61420c565b90508281528383830111156142c857600080fd5b828260208301376000602084830101529392505050565b600082601f8301126142f057600080fd5b611f4a838335602085016142a1565b600080600080600060a0868803121561431757600080fd5b85356143228161414d565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561434d57600080fd5b61435989838a016142df565b9350608088013591508082111561436f57600080fd5b5061437c888289016142df565b9150509295509295909350565b6000806000806080858703121561439f57600080fd5b84356143aa8161414d565b9350602085013567ffffffffffffffff808211156143c757600080fd5b6143d3888389016142df565b945060408701359150808211156143e957600080fd5b506143f6878288016142df565b949793965093946060013593505050565b6000806000806080858703121561441d57600080fd5b843567ffffffffffffffff8082111561443557600080fd5b614441888389016142df565b955060208701359450604087013591508082111561445e57600080fd5b508501601f8101871361447057600080fd5b61447f878235602084016142a1565b92505060608501356002811061449457600080fd5b939692955090935050565b6000602082840312156144b157600080fd5b813567ffffffffffffffff8111156144c857600080fd5b61102f848285016142df565b805169ffffffffffffffffffff811681146144ee57600080fd5b919050565b600080600080600060a0868803121561450b57600080fd5b614514866144d4565b9450602086015193506040860151925060608601519150614537608087016144d4565b90509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60808152600061458560808301876140f0565b905073ffffffffffffffffffffffffffffffffffffffff85166020830152836040830152600583106145e0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b82606083015295945050505050565b80516144ee8161414d565b60006020828403121561460c57600080fd5b8151611f4a8161414d565b60006020828403121561462957600080fd5b81518015158114611f4a57600080fd5b60a08152600061464c60a08301886140f0565b73ffffffffffffffffffffffffffffffffffffffff87166020840152856040840152828103606084015261468081866140f0565b91505060ff831660808301529695505050505050565b805160ff811681146144ee57600080fd5b6000602082840312156146b957600080fd5b611f4a82614696565b6040815260006146d560408301856140f0565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b60006020828403121561470c57600080fd5b5051919050565b60608152600061472660608301866140f0565b905060ff8416602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b60006147636142af8461425b565b905082815283838301111561477757600080fd5b611f4a8360208301846140cc565b60006020828403121561479757600080fd5b815167ffffffffffffffff8111156147ae57600080fd5b8201601f810184136147bf57600080fd5b61102f84825160208401614755565b7fffffffff000000000000000000000000000000000000000000000000000000008416815260606020820152600061480960608301856140f0565b828103604084015261346581856140f0565b6000610100828403121561482e57600080fd5b6148366141be565b825181526020830151602082015260408301516148528161414d565b604082015260608381015190820152608083015161486f8161414d565b8060808301525060a083015160a082015260c083015160c082015261489660e08401614696565b60e08201529392505050565b600082516148b48184602087016140cc565b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006148ed60608301856140f0565b9050826040830152949350505050565b600082601f83011261490e57600080fd5b611f4a83835160208501614755565b60006020828403121561492f57600080fd5b815167ffffffffffffffff8082111561494757600080fd5b90830190610120828603121561495c57600080fd5b6149646141e8565b82518152614974602084016145ef565b6020820152604083015160408201526060830151606082015260808301518281111561499f57600080fd5b6149ab878286016148fd565b60808301525060a083015160a08201526149c760c084016145ef565b60c082015260e083810151908201526101009283015192810192909252509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115612056576120566149ec565b80820180821115612056576120566149ec565b60006101008284031215614a5457600080fd5b614a5c6141be565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201528091505092915050565b8082028115828204841417612056576120566149ec565b600082614afd577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"959:13504:84:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:93:107;;;:::i;:::-;;;160:25:249;;;148:2;133:18;905:93:107;;;;;;;;4313:101:137;;;:::i;:::-;;;;;;;:::i;3382:80::-;;;;;;;;;;;;;;;;;;;;;812:87:107;;;:::i;560:76:137:-;;;;;;;;;;;;;;;;;;;;;605:317:142;;;;;;:::i;:::-;;:::i;3796:898:84:-;;;;;;:::i;:::-;;:::i;:::-;;1119:106:107;;;:::i;3124:78:137:-;;;;;;;;;;;;;;;;;;;;;3825:74;;;;;;;;;;;;;;;;;;;;;477:107:107;;;:::i;1749:93:137:-;;;;;;;;;;;;;;;;;;;;;1935:72;;;;;;;;;;;;;;;;;;;;;2407:70;;;;;;;;;;;;;;;;;;;;;278:76;;;;;;;;;;;;;;;;;;;;;2700:77;;;;;;;;;;;;;;;;;;;;;1251:1624:84;;;;;;:::i;:::-;;:::i;1848:81:137:-;;;;;;;;;;;;;;;;;;;;;374:97:107;;;:::i;3637:88:137:-;;;:::i;2314:87::-;;;;;;;;;;;;;;;;;;;;;3468:88;;;;;;;;;;;;;;;;;;;;;1068:85;;;;;;;;;;;;;;;;;;;;;1275:75;;;;;;;;;;;;;;;;;;;;;142:62;;;;;;;;;;;;;;;;;;;;;898:83;;;;;;;;;;;;;;;;;;;;;2947:87;;;:::i;3040:78::-;;;;;;;;;;;;;;;;;;;;;3932:58;;;;;;;;;;;;;;;;;;;;;1662:81;;;;;;;;;;;;;;;;;;;;;4138:68;;;;;;;;;;;;;;;;;;;;;2208:71;;;;;;;;;;;;;;;;;;;;;987:75;;;;;;;;;;;;;;;;;;;;;745:66;;;;;;;;;;;;;;;;;;;;;3208:76;;;;;;;;;;;;;;;;;;;;;703:103:107;;;:::i;273:95::-;;;:::i;1000:637:139:-;;;;;;:::i;:::-;;:::i;:::-;;;6112:14:249;;6105:22;6087:41;;6075:2;6060:18;1000:637:139;5947:187:249;210:62:137;;;;;;;;;;;;;;;;;;;;;176:91:107;;;:::i;817:75:137:-;;;;;;;;;;;;;;;;;;;;;3731:88;;;:::i;2585:109::-;;;:::i;3996:60::-;;;;;;;;;;;;;;;;;;;;;1523:105;;;:::i;4616:78::-;;;;;;;;;;;;;;;;;;;;;1189:80;;;;;;;;;;;;;;;;;;;;;2097:72;;;;;;;;;;;;;;;;;;;;;2483:96;;;:::i;4478:::-;;;:::i;4062:70::-;;;;;;;;;;;;;;;;;;;;;360:80;;;;;;;;;;;;;;;;;;;;;590:107:107;;;:::i;1127:204:142:-;;;;;;:::i;:::-;;:::i;:::-;;;6311:4:249;6299:17;;;6281:36;;6269:2;6254:18;1127:204:142;6139:184:249;2783:70:137;;;;;;;;;;;;;;;;;;;;;1452:65;;;;;;;;;;;;;;;;;;;;;642:73;;;;;;;;;;;;;;;;;;;;;3562:69;;;;;;;;;;;;;;;;;;;;;1231:87:107;;;:::i;2859:82:137:-;;;;;;;;;;;;;;;;;;;;;2013:78;;;;;;;;;;;;;;;;;;;;;1356:90;;;:::i;489:65::-;;;;;;;;;;;;;;;;;;;;;4212:69;;;;;;;;;;;;;;;;;;;;;822:172:139;;;;;;:::i;:::-;;:::i;:::-;;;6831:42:249;6819:55;;;6801:74;;6789:2;6774:18;822:172:139;6655:226:249;905:93:107;966:29;;7100:11:249;966:29:107;;;7088:24:249;7128:11;;966:29:107;;;;;;;;;;;;;956:40;;;;;;941:57;;;905:93;:::o;4313:101:137:-;;;;;;;;;;;;;;;;;;;:::o;812:87:107:-;870:26;;7364:8:249;870:26:107;;;7352:21:249;7389:11;;870:26:107;7150:256:249;605:317:142;677:7;696:31;752:17;696:74;;833:13;853:9;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;830:50;;;;;;897:18;908:6;897:10;:18::i;:::-;890:25;605:317;-1:-1:-1;;;;605:317:142:o;3796:898:84:-;3999:31;;;;;6831:42:249;6819:55;;3999:31:84;;;6801:74:249;3999:8:84;;:24;;6774:18:249;;3999:31:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4040:32:84;;;;;;;;160:25:249;;;4040:8:84;;-1:-1:-1;4040:21:84;;-1:-1:-1;133:18:249;;4040:32:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4082:30:84;;;;;;;;160:25:249;;;4082:8:84;;-1:-1:-1;4082:21:84;;-1:-1:-1;133:18:249;;4082:30:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4159:33:84;;;4170:15;4159:33;;;8716:25:249;4123:33:84;8757:18:249;;;8750:45;;;8811:18;;;;8804:45;;;4159:33:84;;;;;;;;;;8689:18:249;;;4159:33:84;;;;;-1:-1:-1;4123:33:84;;-1:-1:-1;4232:209:84;;4159:33;;4364:5;;4383:7;;4404:27;;4232:209;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;4466:90;;;;;;;;;;;;;;;;4232:209;;-1:-1:-1;;;4466:90:84;;-1:-1:-1;4232:209:84;-1:-1:-1;4466:24:84;:90::i;:::-;4451:105;;4574:7;4566:54;;;;;;;9963:2:249;4566:54:84;;;9945:21:249;10002:2;9982:18;;;9975:30;10041:34;10021:18;;;10014:62;10112:4;10092:18;;;10085:32;10134:19;;4566:54:84;;;;;;;;;4630:57;4649:5;4656:11;4669:7;4678:8;4630:18;:57::i;:::-;3989:705;;;3796:898;;;;;:::o;1119:106:107:-;1185:37;;10378:19:249;1185:37:107;;;10366:32:249;10414:12;;1185:37:107;10164:268:249;477:107:107;545:36;;10651:18:249;545:36:107;;;10639:31:249;10686:12;;545:36:107;10437:267:249;1251:1624:84;1429:31;;;;;6831:42:249;6819:55;;1429:31:84;;;6801:74:249;1429:8:84;;:24;;6774:18:249;;1429:31:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1470:30:84;;;;;;;;160:25:249;;;1470:8:84;;-1:-1:-1;1470:21:84;;-1:-1:-1;133:18:249;;1470:30:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1510:22;1535:52;1545:24;;;;;;;;;;;;;;;;;1571:15;;;;;;10911:2:249;10893:21;;;10950:1;10930:18;;;10923:29;10988:3;10983:2;10968:18;;10961:31;11024:2;11009:18;;10709:324;1571:15:84;;;;;;;;;;;;;1535:9;:52::i;:::-;1626:42;;;;;;;;160:25:249;;;1510:77:84;;-1:-1:-1;1597:26:84;;1626;:15;:26;;;;133:18:249;;1626:42:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1597:71;;1678:41;1722:29;1736:5;1743:7;1722:13;:29::i;:::-;1678:73;;1761:11;1775:36;1785:8;1795:15;;;;;;10911:2:249;10893:21;;;10950:1;10930:18;;;10923:29;10988:3;10983:2;10968:18;;10961:31;11024:2;11009:18;;10709:324;1775:36:84;1845:31;;;;;;;;160:25:249;;;1761:50:84;;-1:-1:-1;1821:21:84;;1845:26;:15;:26;;;;133:18:249;;1845:31:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1821:55;;1886:12;1913:102;1921:5;1928:8;1938:11;1951:13;:30;;;1983:13;:22;;;2007:7;1913;:102::i;:::-;2055:30;;;;1886:129;;-1:-1:-1;2096:21:84;;;;2118:47;2137:5;2144:11;2157:7;2118:18;:47::i;:::-;2096:76;;;;;;;;;;11641:42:249;11629:55;;;2096:76:84;;;11611:74:249;11701:18;;;11694:34;;;11584:18;;2096:76:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2182:25;2317:13;:30;;;2370:47;2389:5;2396:11;2409:7;2370:18;:47::i;:::-;2210:268;;12278:42:249;12347:15;;;2210:268:84;;;12329:34:249;12399:15;;;12379:18;;;12372:43;12451:15;;;12431:18;;;12424:43;12483:18;;;12476:34;;;12240:19;;2210:268:84;;;;;;;;;;;;;;;;;;;;;;;;;2503:85;;;;;;;;;;;;;;;;2210:268;;-1:-1:-1;;;2503:85:84;;-1:-1:-1;2210:268:84;-1:-1:-1;2503:24:84;:85::i;:::-;2488:100;;2606:7;2598:51;;;;;;;12723:2:249;2598:51:84;;;12705:21:249;12762:2;12742:18;;;12735:30;12801:33;12781:18;;;12774:61;12852:18;;2598:51:84;12521:355:249;2598:51:84;2710:30;;;;;2742:22;;;;2684:87;;;13122:42:249;13191:15;;;2684:87:84;;;13173:34:249;13243:15;;;13223:18;;;13216:43;-1:-1:-1;13275:18:249;;13268:34;13318:18;;;13311:34;;;2659:209:84;;-1:-1:-1;13084:19:249;2684:87:84;;;;;;;;;;;;2785:11;2810:5;2829:7;2850:8;2659:11;:209::i;:::-;1419:1456;;;;;;;;;1251:1624;;;;:::o;374:97:107:-;435:33;;13570:15:249;435:33:107;;;13558:28:249;13602:12;;435:33:107;13356:264:249;3637:88:137;;;;;;;;;;;;;;;;;;;:::o;2947:87::-;;;;;;;;;;;;;;;;;;;:::o;703:103:107:-;769:34;;13839:16:249;769:34:107;;;13827:29:249;13872:12;;769:34:107;13625:265:249;273:95:107;335:30;;14109:12:249;335:30:107;;;14097:25:249;14138:12;;335:30:107;13895:261:249;1000:637:139;1073:37:107;;10378:19:249;1073:37:107;;;10366:32:249;1230:12:139;;10414::249;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;14375:10:249;14363:23;;14411:1;14402:11;;14161:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;14598:25:249;;;795:10:108;14639:18:249;;;14632:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;14571:18:249;;777:29:108;14424:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;14928:2:249;817:84:108;;;14910:21:249;14967:2;14947:18;;;14940:30;15006:34;14986:18;;;14979:62;15077:3;15057:18;;;15050:31;15098:19;;817:84:108;14726:397:249;817:84:108;1258:24:139::1;1398:11;1431:4;1450:6;1470:5;1495:10;1489:17;;;;;;;;:::i;:::-;1285:231;;;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;;;::::0;;;-1:-1:-1;1536:94:139::1;1552:20;-1:-1:-1::0;1285:231:139;-1:-1:-1;1612:17:139::1;1536:7;:94::i;:::-;1526:104:::0;1000:637;-1:-1:-1;;;;;;;;;1000:637:139:o;176:91:107:-;236:28;;14375:10:249;236:28:107;;;14363:23:249;14402:11;;236:28:107;14161:258:249;3731:88:137;;;;;;;;;;;;;;;;;;;:::o;2585:109::-;;;;;;;;;;;;;;;;;;;:::o;1523:105::-;;;;;;;;;;;;;;;;;;;:::o;2483:96::-;;;;;;;;;;;;;;;;;;;:::o;4478:::-;;;;;;;;;;;;;;;;;;;:::o;590:107:107:-;658:36;;16000:18:249;658:36:107;;;15988:31:249;16035:12;;658:36:107;15786:267:249;1127:204:142;1196:5;1213:31;1269:17;1213:74;;1304:9;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1297:27;1127:204;-1:-1:-1;;;1127:204:142:o;1231:87:107:-;1289:26;;16646:8:249;1289:26:107;;;16634:21:249;16671:11;;1289:26:107;16432:256:249;1356:90:137;;;;;;;;;;;;;;;;;;;:::o;822:172:139:-;922:65;;;;;896:7;;922:37;:20;:37;;;;:65;;960:11;;981:4;;922:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;915:72;822:172;-1:-1:-1;;822:172:139:o;1429:183:142:-;1481:7;1513:1;1508;:6;;1500:78;;;;;;;17240:2:249;1500:78:142;;;17222:21:249;17279:2;17259:18;;;17252:30;17318:34;17298:18;;;17291:62;17389:29;17369:18;;;17362:57;17436:19;;1500:78:142;17038:423:249;1500:78:142;-1:-1:-1;1603:1:142;1429:183::o;4700:1611:84:-;4883:35;;;;;6831:42:249;6819:55;;4883:35:84;;;6801:74:249;4883:8:84;;:24;;6774:18:249;;4883:35:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4928:41;4972:33;4986:9;4997:7;4972:13;:33::i;:::-;4928:77;;5015:24;5054:95;5070:13;:31;;;5103:13;:21;;;5126:13;:22;;;5054:15;:95::i;:::-;5239:28;;;;5393:22;;;;5177:249;;;;;;;;17733:25:249;;;;17774:18;;;17767:34;;;569:3:154;17817:18:249;;;17810:34;;;17860:18;;;17853:34;5387:2:84;:29;17903:19:249;;;17896:35;5015:134:84;;-1:-1:-1;5160:14:84;;5177:10;;:48;;17705:19:249;;5177:249:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5437:29;;;;;;;;160:25:249;;;5160:266:84;;-1:-1:-1;5437:8:84;;:21;;133:18:249;;5437:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5476:17;5519:28;5538:8;5519:18;:28::i;:::-;5549:31;;;;5508:96;;;18372:42:249;18441:15;;;5508:96:84;;;18423:34:249;18493:15;;;;18473:18;;;18466:43;18525:18;;;18518:34;;;5598:4:84;18568:18:249;;;18561:43;-1:-1:-1;18334:19:249;5508:96:84;;;;;;;;;;;;5476:128;;5615:20;5710:4;5716:1;5727:51;5746:9;5757:11;5770:7;5727:18;:51::i;:::-;5638:151;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;5814:81;;;;;;;;;;;;;;;;5638:151;;-1:-1:-1;;;5814:81:84;;-1:-1:-1;5638:151:84;-1:-1:-1;5814:24:84;:81::i;:::-;5799:96;;5913:7;5905:36;;;;;;;19248:2:249;5905:36:84;;;19230:21:249;19287:2;19267:18;;;19260:30;19326:18;19306;;;19299:46;19362:18;;5905:36:84;19046:340:249;5905:36:84;5951:14;5968:77;5978:34;;;;;;;;;;;;;;;;;6014:30;;;11641:42:249;11629:55;;6014:30:84;;;11611:74:249;11701:18;;;11694:34;;;11584:18;;6014:30:84;11437:297:249;5968:77:84;6099:32;;;;;;;;160:25:249;;;5951:94:84;;-1:-1:-1;6055:41:84;;6099:24;:15;:24;;;;133:18:249;;6099:32:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6055:76;;6145:28;:35;6184:1;6145:40;6141:122;;6201:51;6210:9;6221:8;6231:11;6244:7;6201:8;:51::i;:::-;6272:32;6285:9;6296:7;6272:12;:32::i;:::-;4873:1438;;;;;;;;4700:1611;;;;:::o;1180:170:138:-;1292:51;;;;;1266:7;;1292:13;;:23;;:51;;1316:9;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11417:340:84:-;11494:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11494:27:84;11533:11;11547:63;11557:24;;;;;;;;;;;;;;;;;11594:5;11601:7;11583:26;;;;;;;;11641:42:249;11629:55;;;;11611:74;;11716:2;11701:18;;11694:34;11599:2;11584:18;;11437:297;11547:63:84;11652:29;;;;;;;;160:25:249;;;11533:77:84;;-1:-1:-1;11620:29:84;;11652:24;:15;:24;;;;133:18:249;;11652:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11620:61;;11709:16;11698:52;;;;;;;;;;;;:::i;:::-;11691:59;11417:340;-1:-1:-1;;;;;11417:340:84:o;10542:869::-;10805:31;;;;;6831:42:249;6819:55;;10805:31:84;;;6801:74:249;10777:12:84;;10805:8;;:24;;6774:18:249;;10805:31:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10846:21;10870:28;10889:8;10870:18;:28::i;:::-;10908:39;;;;;6831:42:249;6819:55;;10908:39:84;;;6801:74:249;10846:52:84;;-1:-1:-1;10908:8:84;;:24;;6774:18:249;;10908:39:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10958:21;11064:13;11079:6;11087:9;11098:47;11117:5;11124:11;11137:7;11098:18;:47::i;:::-;11053:93;;;18372:42:249;18441:15;;;11053:93:84;;;18423:34:249;18493:15;;;18473:18;;;18466:43;18525:18;;;18518:34;;;;18588:15;;;18568:18;;;18561:43;18334:19;;11053:93:84;;;;;;;;;;;;;;10982:174;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11205:47:84;11224:5;11231:11;11244:7;11205:18;:47::i;:::-;:58;;11264:8;11205:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11167:106;;;;11291:7;11283:53;;;;;;;22499:2:249;11283:53:84;;;22481:21:249;22538:2;22518:18;;;22511:30;22577:34;22557:18;;;22550:62;22648:3;22628:18;;;22621:31;22669:19;;11283:53:84;22297:397:249;11283:53:84;11365:6;11354:29;;;;;;;;;;;;:::i;:::-;11347:36;10542:869;-1:-1:-1;;;;;;;;;;;10542:869:84:o;12756:486::-;12919:21;12956:11;12970:93;12980:41;;;;;;;;;;;;;;;;;13034:5;13041:11;13054:7;13023:39;;;;;;;;;;:::i;12970:93::-;13090:31;;;;;;;;160:25:249;;;12956:107:84;;-1:-1:-1;13090:15:84;:26;;;;;133:18:249;;13090:31:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13074:47;-1:-1:-1;13139:27:84;;;13131:73;;;;;;;23317:2:249;13131:73:84;;;23299:21:249;23356:2;23336:18;;;23329:30;23395:34;23375:18;;;23368:62;23466:3;23446:18;;;23439:31;23487:19;;13131:73:84;23115:397:249;13131:73:84;13215:20;12756:486;;;;;:::o;2881:849::-;3085:20;3177:9;3188:1;3199:47;3218:5;3225:11;3238:7;3199:18;:47::i;:::-;3108:149;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;3282:72;;;;;;;;;;;;;;;;3108:149;;-1:-1:-1;;;3282:72:84;;-1:-1:-1;3108:149:84;-1:-1:-1;3282:24:84;:72::i;:::-;3267:87;;3372:7;3364:36;;;;;;;19248:2:249;3364:36:84;;;19230:21:249;19287:2;19267:18;;;19260:30;19326:18;19306;;;19299:46;19362:18;;3364:36:84;19046:340:249;3364:36:84;3410:14;3427:73;3437:34;;;;;;;;;;;;;;;;;3473:26;;;11641:42:249;11629:55;;3473:26:84;;;11611:74:249;11701:18;;;11694:34;;;11584:18;;3473:26:84;11437:297:249;3427:73:84;3554:32;;;;;;;;160:25:249;;;3410:90:84;;-1:-1:-1;3510:41:84;;3554:24;:15;:24;;;;133:18:249;;3554:32:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3510:76;;3600:28;:35;3639:1;3600:40;3596:128;;3656:57;3675:5;3682:11;3695:7;3704:8;3656:18;:57::i;:::-;3075:655;;;;2881:849;;;;;:::o;519:822:101:-;708:12;;757:10;:33;;;;;;;;:::i;:::-;;:78;;;-1:-1:-1;808:27:101;794:10;:41;;;;;;;;:::i;:::-;;757:78;736:152;;;;;;;23719:2:249;736:152:101;;;23701:21:249;23758:2;23738:18;;;23731:30;23797:29;23777:18;;;23770:57;23844:18;;736:152:101;23517:351:249;736:152:101;916:27;902:10;:41;;;;;;;;:::i;:::-;;898:437;;1111:1;1108;1100:5;1094:12;1087:4;1080:5;1076:16;1071:3;1063:6;1050:63;1039:74;;898:437;;;1309:1;1306;1298:5;1292:12;1285:4;1278:5;1274:16;1266:6;1261:3;1253:6;1248:63;1237:74;519:822;-1:-1:-1;;;;;;519:822:101:o;11763:344:84:-;11840:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11840:27:84;11879:11;11893:67;11903:28;;;;;;;;;;;;;;;;;11944:5;11951:7;11933:26;;;;;;;;11641:42:249;11629:55;;;;11611:74;;11716:2;11701:18;;11694:34;11599:2;11584:18;;11437:297;11893:67:84;12002:29;;;;;;;;160:25:249;;;11879:81:84;;-1:-1:-1;11970:29:84;;12002:24;:15;:24;;;;133:18:249;;12002:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11970:61;;12059:16;12048:52;;;;;;;;;;;;:::i;13248:500::-;13401:14;13431:11;13445:68;13455:29;;;;;;;;;;;;;;;;;13497:6;13505;13486:26;;;;;;;;11641:42:249;11629:55;;;;11611:74;;11716:2;11701:18;;11694:34;11599:2;11584:18;;11437:297;13445:68:84;13550:31;;;;;;;;160:25:249;;;13431:82:84;;-1:-1:-1;13523:24:84;;13550:26;:15;:26;;;;133:18:249;;13550:31:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13523:58;-1:-1:-1;13599:30:84;;;13591:76;;;;;;;25434:2:249;13591:76:84;;;25416:21:249;25473:2;25453:18;;;25446:30;25512:34;25492:18;;;25485:62;25583:3;25563:18;;;25556:31;25604:19;;13591:76:84;25232:397:249;13591:76:84;13686:32;13701:16;13686:14;:32::i;:::-;13677:41;13248:500;-1:-1:-1;;;;;;13248:500:84:o;12549:201::-;12623:21;12679:15;:26;;;12706:36;12716:8;12726:15;;;;;;10911:2:249;10893:21;;;10950:1;10930:18;;;10923:29;10988:3;10983:2;10968:18;;10961:31;11024:2;11009:18;;10709:324;12706:36:84;12679:64;;;;;;;;;;;;;160:25:249;;148:2;133:18;;14:177;8078:509:84;8198:12;8212:13;8229:65;8256:5;8263:7;8272:8;8282:11;8229:26;:65::i;:::-;8304:27;;;;;;;;160:25:249;;;8197:97:84;;-1:-1:-1;8197:97:84;-1:-1:-1;8304:8:84;;:21;;133:18:249;;8304:27:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8341:28:84;;;;;;;;160:25:249;;;8341:8:84;;-1:-1:-1;8341:21:84;;-1:-1:-1;133:18:249;;8341:28:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8379:22;8411:5;8404:4;:12;;;;:::i;:::-;8379:37;;8426:41;8470:29;8484:5;8491:7;8470:13;:29::i;:::-;8426:73;;8509:71;8525:14;8541:5;8548:13;:31;;;8509:15;:71::i;6317:1755::-;6389:41;6433:29;6447:5;6454:7;6433:13;:29::i;:::-;6389:73;;6472:63;6538:43;6566:5;6573:7;6538:27;:43::i;:::-;6472:109;;6591:24;6656:95;6672:13;:31;;;6705:13;:21;;;6728:13;:22;;;6656:15;:95::i;:::-;6625:126;;6762:30;6807:86;6836:19;:38;;;6876:16;6807:28;:86::i;:::-;6762:131;;6904:15;6963:19;:39;;;6938:22;:64;6934:1057;;;7018:19;7065;:39;;;7040:22;:64;;;;:::i;:::-;7145:184;;;;;;;;17733:25:249;;;17774:18;;;17767:34;;;569:3:154;17817:18:249;;;17810:34;;;17860:18;;;17853:34;;;17903:19;;;17896:35;7018:86:84;;-1:-1:-1;7118:24:84;;7145:10;;:48;;17705:19:249;;7145:184:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7118:211;;7354:10;:48;7461:16;7420:19;:38;;;:57;;;;:::i;:::-;7619:22;;;;;7354:302;;;;;;;;;;;;;17733:25:249;;;;17774:18;;;17767:34;;;569:3:154;17817:18:249;;;17810:34;;;17860:18;;;17853:34;7613:2:84;:29;;;17903:19:249;;;17896:35;17705:19;;7354:302:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7344:312;;7004:663;;6934:1057;;;7763:38;;7943:22;;;;7697:283;;;;;;;;17733:25:249;;;;17774:18;;;17767:34;;;569:3:154;17817:18:249;;;17810:34;;;17860:18;;;17853:34;7937:2:84;:29;17903:19:249;;;17896:35;7697:10:84;;:48;;17705:19:249;;7697:283:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7687:293;;6934:1057;8001:64;8017:7;8026:5;8033:13;:31;;;8001:15;:64::i;:::-;6379:1693;;;;;6317:1755;;:::o;8593:1384::-;8796:12;8810:13;8839:41;8883:29;8897:5;8904:7;8883:13;:29::i;:::-;8839:73;;8922:12;8949:102;8957:5;8964:8;8974:11;8987:13;:30;;;9019:13;:22;;;9043:7;8949;:102::i;:::-;8922:129;;9061:34;9105:28;9143:24;9177:41;9221:29;9235:5;9242:7;9221:13;:29::i;:::-;9177:73;;9291:95;9307:13;:31;;;9340:13;:21;;;9363:13;:22;;;9291:15;:95::i;:::-;9260:126;;9431:94;9447:13;:30;;;9479:13;:21;;;9502:13;:22;;;9431:94;;:15;:94::i;:::-;9396:129;;9536:40;9591:86;9620:13;:28;;;9650:26;9591:28;:86::i;:::-;9694:83;;;;;;;;26268:25:249;;;26309:18;;;26302:34;;;9536:141:84;;-1:-1:-1;9694:10:84;;:21;;26241:18:249;;9694:83:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9687:90;;9788:34;9825:56;9854:4;9860:20;9825:28;:56::i;:::-;9899:71;;;;;;;;26268:25:249;;;26309:18;;;26302:34;;;9788:93:84;;-1:-1:-1;9899:10:84;;:21;;26241:18:249;;9899:71:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9891:79;;8829:1148;;;;;;;;8593:1384;;;;;;;:::o;9983:553::-;10075:31;;;;;;;;160:25:249;;;10075:8:84;;:21;;133:18:249;;10075:31:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10116:22;10141:52;10151:24;;;;;;;;;;;;;;;;;10177:15;;;;;;10911:2:249;10893:21;;;10950:1;10930:18;;;10923:29;10988:3;10983:2;10968:18;;10961:31;11024:2;11009:18;;10709:324;10141:52:84;10232:42;;;;;;;;160:25:249;;;10116:77:84;;-1:-1:-1;10203:26:84;;10232;:15;:26;;;;133:18:249;;10232:42:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10333:52;;;;;:22;11629:55:249;;;10333:52:84;;;11611:74:249;11701:18;;;11694:34;;;10203:71:84;;-1:-1:-1;10315:6:84;;10333:22;;;;;11584:18:249;;10333:52:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;10410:38:84;;;;;10442:4;10410:38;;;6801:74:249;10396:11:84;;10410:23;;;;;;6774:18:249;;10410:38:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10396:52;-1:-1:-1;10462:7:84;;10458:72;;10485:34;;;;;:22;11629:55:249;;;10485:34:84;;;11611:74:249;11701:18;;;11694:34;;;10485:22:84;;;;;11584:18:249;;10485:34:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12113:430::-;12250:43;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12250:43:84;12309:11;12323:73;12333:34;;;;;;;;;;;;;;;;;12369:26;;;11641:42:249;11629:55;;12369:26:84;;;11611:74:249;11701:18;;;11694:34;;;11584:18;;12369:26:84;11437:297:249;12323:73:84;12430:29;;;;;;;;160:25:249;;;12309:87:84;;-1:-1:-1;12406:21:84;;12430:24;:15;:24;;;;133:18:249;;12430:29:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12406:53;;12487:8;12476:60;;;;;;;;;;;;:::i;3692:339:154:-;3783:14;3826:1;3817:6;:10;3809:55;;;;;;;27269:2:249;3809:55:154;;;27251:21:249;;;27288:18;;;27281:30;27347:34;27327:18;;;27320:62;27399:18;;3809:55:154;27067:356:249;3809:55:154;3900:1;3882:15;:19;3874:69;;;;;;;27630:2:249;3874:69:154;;;27612:21:249;27669:2;27649:18;;;27642:30;27708:34;27688:18;;;27681:62;27779:7;27759:18;;;27752:35;27804:19;;3874:69:154;27428:401:249;3874:69:154;3986:15;3963:19;514:3;3963:6;:19;:::i;:::-;3962:39;;;;:::i;196:250:249:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:249;420:16;;413:27;196:250::o;451:330::-;493:3;531:5;525:12;558:6;553:3;546:19;574:76;643:6;636:4;631:3;627:14;620:4;613:5;609:16;574:76;:::i;:::-;695:2;683:15;700:66;679:88;670:98;;;;770:4;666:109;;451:330;-1:-1:-1;;451:330:249:o;786:220::-;935:2;924:9;917:21;898:4;955:45;996:2;985:9;981:18;973:6;955:45;:::i;1011:154::-;1097:42;1090:5;1086:54;1079:5;1076:65;1066:93;;1155:1;1152;1145:12;1066:93;1011:154;:::o;1170:247::-;1229:6;1282:2;1270:9;1261:7;1257:23;1253:32;1250:52;;;1298:1;1295;1288:12;1250:52;1337:9;1324:23;1356:31;1381:5;1356:31;:::i;1604:184::-;1656:77;1653:1;1646:88;1753:4;1750:1;1743:15;1777:4;1774:1;1767:15;1793:252;1865:2;1859:9;1907:3;1895:16;;1941:18;1926:34;;1962:22;;;1923:62;1920:88;;;1988:18;;:::i;:::-;2024:2;2017:22;1793:252;:::o;2050:255::-;2122:2;2116:9;2164:6;2152:19;;2201:18;2186:34;;2222:22;;;2183:62;2180:88;;;2248:18;;:::i;2310:334::-;2381:2;2375:9;2437:2;2427:13;;2442:66;2423:86;2411:99;;2540:18;2525:34;;2561:22;;;2522:62;2519:88;;;2587:18;;:::i;:::-;2623:2;2616:22;2310:334;;-1:-1:-1;2310:334:249:o;2649:246::-;2698:4;2731:18;2723:6;2720:30;2717:56;;;2753:18;;:::i;:::-;-1:-1:-1;2810:2:249;2798:15;2815:66;2794:88;2884:4;2790:99;;2649:246::o;2900:338::-;2965:5;2994:53;3010:36;3039:6;3010:36;:::i;:::-;2994:53;:::i;:::-;2985:62;;3070:6;3063:5;3056:21;3110:3;3101:6;3096:3;3092:16;3089:25;3086:45;;;3127:1;3124;3117:12;3086:45;3176:6;3171:3;3164:4;3157:5;3153:16;3140:43;3230:1;3223:4;3214:6;3207:5;3203:18;3199:29;3192:40;2900:338;;;;;:::o;3243:222::-;3286:5;3339:3;3332:4;3324:6;3320:17;3316:27;3306:55;;3357:1;3354;3347:12;3306:55;3379:80;3455:3;3446:6;3433:20;3426:4;3418:6;3414:17;3379:80;:::i;3470:816::-;3585:6;3593;3601;3609;3617;3670:3;3658:9;3649:7;3645:23;3641:33;3638:53;;;3687:1;3684;3677:12;3638:53;3726:9;3713:23;3745:31;3770:5;3745:31;:::i;:::-;3795:5;-1:-1:-1;3847:2:249;3832:18;;3819:32;;-1:-1:-1;3898:2:249;3883:18;;3870:32;;-1:-1:-1;3953:2:249;3938:18;;3925:32;3976:18;4006:14;;;4003:34;;;4033:1;4030;4023:12;4003:34;4056:50;4098:7;4089:6;4078:9;4074:22;4056:50;:::i;:::-;4046:60;;4159:3;4148:9;4144:19;4131:33;4115:49;;4189:2;4179:8;4176:16;4173:36;;;4205:1;4202;4195:12;4173:36;;4228:52;4272:7;4261:8;4250:9;4246:24;4228:52;:::i;:::-;4218:62;;;3470:816;;;;;;;;:::o;4291:747::-;4397:6;4405;4413;4421;4474:3;4462:9;4453:7;4449:23;4445:33;4442:53;;;4491:1;4488;4481:12;4442:53;4530:9;4517:23;4549:31;4574:5;4549:31;:::i;:::-;4599:5;-1:-1:-1;4655:2:249;4640:18;;4627:32;4678:18;4708:14;;;4705:34;;;4735:1;4732;4725:12;4705:34;4758:50;4800:7;4791:6;4780:9;4776:22;4758:50;:::i;:::-;4748:60;;4861:2;4850:9;4846:18;4833:32;4817:48;;4890:2;4880:8;4877:16;4874:36;;;4906:1;4903;4896:12;4874:36;;4929:52;4973:7;4962:8;4951:9;4947:24;4929:52;:::i;:::-;4291:747;;;;-1:-1:-1;4919:62:249;;5028:2;5013:18;5000:32;;-1:-1:-1;;;4291:747:249:o;5043:899::-;5163:6;5171;5179;5187;5240:3;5228:9;5219:7;5215:23;5211:33;5208:53;;;5257:1;5254;5247:12;5208:53;5297:9;5284:23;5326:18;5367:2;5359:6;5356:14;5353:34;;;5383:1;5380;5373:12;5353:34;5406:50;5448:7;5439:6;5428:9;5424:22;5406:50;:::i;:::-;5396:60;;5503:2;5492:9;5488:18;5475:32;5465:42;;5560:2;5549:9;5545:18;5532:32;5516:48;;5589:2;5579:8;5576:16;5573:36;;;5605:1;5602;5595:12;5573:36;-1:-1:-1;5628:24:249;;5683:4;5675:13;;5671:27;-1:-1:-1;5661:55:249;;5712:1;5709;5702:12;5661:55;5735:74;5801:7;5796:2;5783:16;5778:2;5774;5770:11;5735:74;:::i;:::-;5725:84;;;5859:2;5848:9;5844:18;5831:32;5892:1;5885:5;5882:12;5872:40;;5908:1;5905;5898:12;5872:40;5043:899;;;;-1:-1:-1;5043:899:249;;-1:-1:-1;;5043:899:249:o;6328:322::-;6397:6;6450:2;6438:9;6429:7;6425:23;6421:32;6418:52;;;6466:1;6463;6456:12;6418:52;6506:9;6493:23;6539:18;6531:6;6528:30;6525:50;;;6571:1;6568;6561:12;6525:50;6594;6636:7;6627:6;6616:9;6612:22;6594:50;:::i;7411:179::-;7489:13;;7542:22;7531:34;;7521:45;;7511:73;;7580:1;7577;7570:12;7511:73;7411:179;;;:::o;7595:473::-;7698:6;7706;7714;7722;7730;7783:3;7771:9;7762:7;7758:23;7754:33;7751:53;;;7800:1;7797;7790:12;7751:53;7823:39;7852:9;7823:39;:::i;:::-;7813:49;;7902:2;7891:9;7887:18;7881:25;7871:35;;7946:2;7935:9;7931:18;7925:25;7915:35;;7990:2;7979:9;7975:18;7969:25;7959:35;;8013:49;8057:3;8046:9;8042:19;8013:49;:::i;:::-;8003:59;;7595:473;;;;;;;;:::o;8860:184::-;8912:77;8909:1;8902:88;9009:4;9006:1;8999:15;9033:4;9030:1;9023:15;9049:707;9295:3;9284:9;9277:22;9258:4;9316:46;9357:3;9346:9;9342:19;9334:6;9316:46;:::i;:::-;9308:54;;9410:42;9402:6;9398:55;9393:2;9382:9;9378:18;9371:83;9490:6;9485:2;9474:9;9470:18;9463:34;9527:1;9519:6;9516:13;9506:201;;9563:77;9560:1;9553:88;9664:4;9661:1;9654:15;9692:4;9689:1;9682:15;9506:201;9743:6;9738:2;9727:9;9723:18;9716:34;9049:707;;;;;;;:::o;11038:138::-;11117:13;;11139:31;11117:13;11139:31;:::i;11181:251::-;11251:6;11304:2;11292:9;11283:7;11279:23;11275:32;11272:52;;;11320:1;11317;11310:12;11272:52;11352:9;11346:16;11371:31;11396:5;11371:31;:::i;11739:277::-;11806:6;11859:2;11847:9;11838:7;11834:23;11830:32;11827:52;;;11875:1;11872;11865:12;11827:52;11907:9;11901:16;11960:5;11953:13;11946:21;11939:5;11936:32;11926:60;;11982:1;11979;11972:12;15128:653;15403:3;15392:9;15385:22;15366:4;15430:46;15471:3;15460:9;15456:19;15448:6;15430:46;:::i;:::-;15524:42;15516:6;15512:55;15507:2;15496:9;15492:18;15485:83;15604:6;15599:2;15588:9;15584:18;15577:34;15659:9;15651:6;15647:22;15642:2;15631:9;15627:18;15620:50;15687:33;15713:6;15705;15687:33;:::i;:::-;15679:41;;;15769:4;15761:6;15757:17;15751:3;15740:9;15736:19;15729:46;15128:653;;;;;;;;:::o;16058:160::-;16135:13;;16188:4;16177:16;;16167:27;;16157:55;;16208:1;16205;16198:12;16223:204;16291:6;16344:2;16332:9;16323:7;16319:23;16315:32;16312:52;;;16360:1;16357;16350:12;16312:52;16383:38;16411:9;16383:38;:::i;16693:340::-;16870:2;16859:9;16852:21;16833:4;16890:45;16931:2;16920:9;16916:18;16908:6;16890:45;:::i;:::-;16882:53;;16983:42;16975:6;16971:55;16966:2;16955:9;16951:18;16944:83;16693:340;;;;;:::o;17942:184::-;18012:6;18065:2;18053:9;18044:7;18040:23;18036:32;18033:52;;;18081:1;18078;18071:12;18033:52;-1:-1:-1;18104:16:249;;17942:184;-1:-1:-1;17942:184:249:o;18615:426::-;18824:2;18813:9;18806:21;18787:4;18844:45;18885:2;18874:9;18870:18;18862:6;18844:45;:::i;:::-;18836:53;;18937:4;18929:6;18925:17;18920:2;18909:9;18905:18;18898:45;18991:42;18983:6;18979:55;18974:2;18963:9;18959:18;18952:83;18615:426;;;;;;:::o;19391:321::-;19466:5;19495:53;19511:36;19540:6;19511:36;:::i;19495:53::-;19486:62;;19571:6;19564:5;19557:21;19611:3;19602:6;19597:3;19593:16;19590:25;19587:45;;;19628:1;19625;19618:12;19587:45;19641:65;19699:6;19692:4;19685:5;19681:16;19676:3;19641:65;:::i;19717:457::-;19796:6;19849:2;19837:9;19828:7;19824:23;19820:32;19817:52;;;19865:1;19862;19855:12;19817:52;19898:9;19892:16;19931:18;19923:6;19920:30;19917:50;;;19963:1;19960;19953:12;19917:50;19986:22;;20039:4;20031:13;;20027:27;-1:-1:-1;20017:55:249;;20068:1;20065;20058:12;20017:55;20091:77;20160:7;20155:2;20149:9;20144:2;20140;20136:11;20091:77;:::i;20179:531::-;20420:66;20412:6;20408:79;20397:9;20390:98;20524:2;20519;20508:9;20504:18;20497:30;20371:4;20550:45;20591:2;20580:9;20576:18;20568:6;20550:45;:::i;:::-;20643:9;20635:6;20631:22;20626:2;20615:9;20611:18;20604:50;20671:33;20697:6;20689;20671:33;:::i;20904:873::-;21007:6;21060:3;21048:9;21039:7;21035:23;21031:33;21028:53;;;21077:1;21074;21067:12;21028:53;21103:22;;:::i;:::-;21154:9;21148:16;21141:5;21134:31;21218:2;21207:9;21203:18;21197:25;21192:2;21185:5;21181:14;21174:49;21268:2;21257:9;21253:18;21247:25;21281:33;21306:7;21281:33;:::i;:::-;21341:2;21330:14;;21323:31;21407:2;21392:18;;;21386:25;21370:14;;;21363:49;21457:3;21442:19;;21436:26;21471:33;21436:26;21471:33;:::i;:::-;21537:7;21531:3;21524:5;21520:15;21513:32;;21599:3;21588:9;21584:19;21578:26;21572:3;21565:5;21561:15;21554:51;21659:3;21648:9;21644:19;21638:26;21632:3;21625:5;21621:15;21614:51;21698:48;21741:3;21730:9;21726:19;21698:48;:::i;:::-;21692:3;21681:15;;21674:73;21685:5;20904:873;-1:-1:-1;;;20904:873:249:o;22005:287::-;22134:3;22172:6;22166:13;22188:66;22247:6;22242:3;22235:4;22227:6;22223:17;22188:66;:::i;:::-;22270:16;;;;;22005:287;-1:-1:-1;;22005:287:249:o;22699:411::-;22916:42;22908:6;22904:55;22893:9;22886:74;22996:2;22991;22980:9;22976:18;22969:30;22867:4;23016:45;23057:2;23046:9;23042:18;23034:6;23016:45;:::i;:::-;23008:53;;23097:6;23092:2;23081:9;23077:18;23070:34;22699:411;;;;;;:::o;23873:236::-;23927:5;23980:3;23973:4;23965:6;23961:17;23957:27;23947:55;;23998:1;23995;23988:12;23947:55;24020:83;24099:3;24090:6;24084:13;24077:4;24069:6;24065:17;24020:83;:::i;24114:1113::-;24217:6;24270:2;24258:9;24249:7;24245:23;24241:32;24238:52;;;24286:1;24283;24276:12;24238:52;24319:9;24313:16;24348:18;24389:2;24381:6;24378:14;24375:34;;;24405:1;24402;24395:12;24375:34;24428:22;;;;24484:6;24466:16;;;24462:29;24459:49;;;24504:1;24501;24494:12;24459:49;24530:22;;:::i;:::-;24581:2;24575:9;24568:5;24561:24;24617:42;24655:2;24651;24647:11;24617:42;:::i;:::-;24612:2;24605:5;24601:14;24594:66;24706:2;24702;24698:11;24692:18;24687:2;24680:5;24676:14;24669:42;24757:2;24753;24749:11;24743:18;24738:2;24731:5;24727:14;24720:42;24801:3;24797:2;24793:12;24787:19;24831:2;24821:8;24818:16;24815:36;;;24847:1;24844;24837:12;24815:36;24884:56;24932:7;24921:8;24917:2;24913:17;24884:56;:::i;:::-;24878:3;24871:5;24867:15;24860:81;;24988:3;24984:2;24980:12;24974:19;24968:3;24961:5;24957:15;24950:44;25027:43;25065:3;25061:2;25057:12;25027:43;:::i;:::-;25021:3;25010:15;;25003:68;25118:3;25110:12;;;25104:19;25087:15;;;25080:44;25143:3;25184:11;;;25178:18;25162:14;;;25155:42;;;;-1:-1:-1;25014:5:249;24114:1113;-1:-1:-1;;;24114:1113:249:o;25634:184::-;25686:77;25683:1;25676:88;25783:4;25780:1;25773:15;25807:4;25804:1;25797:15;25823:128;25890:9;;;25911:11;;;25908:37;;;25925:18;;:::i;25956:125::-;26021:9;;;26042:10;;;26039:36;;;26055:18;;:::i;26347:715::-;26460:6;26513:3;26501:9;26492:7;26488:23;26484:33;26481:53;;;26530:1;26527;26520:12;26481:53;26556:22;;:::i;:::-;26607:9;26601:16;26594:5;26587:31;26671:2;26660:9;26656:18;26650:25;26645:2;26638:5;26634:14;26627:49;26729:2;26718:9;26714:18;26708:25;26703:2;26696:5;26692:14;26685:49;26787:2;26776:9;26772:18;26766:25;26761:2;26754:5;26750:14;26743:49;26846:3;26835:9;26831:19;26825:26;26819:3;26812:5;26808:15;26801:51;26906:3;26895:9;26891:19;26885:26;26879:3;26872:5;26868:15;26861:51;26966:3;26955:9;26951:19;26945:26;26939:3;26932:5;26928:15;26921:51;27026:3;27015:9;27011:19;27005:26;26999:3;26992:5;26988:15;26981:51;27051:5;27041:15;;;26347:715;;;;:::o;27834:168::-;27907:9;;;27938;;27955:15;;;27949:22;;27935:37;27925:71;;27976:18;;:::i;28007:274::-;28047:1;28073;28063:189;;28108:77;28105:1;28098:88;28209:4;28206:1;28199:15;28237:4;28234:1;28227:15;28063:189;-1:-1:-1;28266:9:249;;28007:274::o","linkReferences":{"src/libraries/Conversion.sol":{"Conversion":[{"start":8715,"length":20},{"start":14083,"length":20},{"start":14181,"length":20},{"start":14476,"length":20},{"start":14786,"length":20},{"start":14951,"length":20}]},"src/libraries/Security.sol":{"Security":[{"start":4219,"length":20},{"start":4340,"length":20},{"start":4462,"length":20},{"start":5130,"length":20},{"start":5251,"length":20},{"start":8502,"length":20},{"start":8858,"length":20},{"start":10418,"length":20},{"start":10577,"length":20},{"start":13650,"length":20},{"start":13770,"length":20},{"start":15110,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":9730,"length":20}]}},"immutableReferences":{"71353":[{"start":5518,"length":32},{"start":5786,"length":32},{"start":7132,"length":32},{"start":9499,"length":32},{"start":10175,"length":32},{"start":11305,"length":32},{"start":12081,"length":32},{"start":12783,"length":32},{"start":13132,"length":32},{"start":13427,"length":32},{"start":15355,"length":32},{"start":16149,"length":32}],"71356":[{"start":9762,"length":32}],"71437":[{"start":7569,"length":32},{"start":8158,"length":32}]}},"methodIdentifiers":{"ACL_ADMIN()":"5e209249","ACTION()":"dbd55fb3","ACTION_MANAGER()":"25889b22","ACTION_MANAGER_NAME_ACTIONS()":"739baf49","ACTION_USER_IMPLENTATION_CALLER()":"c414d4f9","ADDRESS_ACTION_MANAGER()":"ba9a08d7","ADDRESS_BLUEPRINT_MANAGER()":"e642ad34","ADDRESS_LENDER_MARKET()":"423ac8d9","ADDRESS_MANAGER_ACCESS_CONTROL()":"5f39ca22","ADDRESS_MODULE_MANAGER()":"420ea360","ADDRESS_MONEY_MARKET_NAME_BLUEPRINT()":"be22fa1e","ADDRESS_NAME_CONCRETE()":"d017d357","ADDRESS_NAME_MASTERVAULT()":"e51a3bab","ADDRESS_NAME_PORTFOLIO()":"430c6fe6","ADDRESS_NAME_STREAMVAULT()":"697e744c","ADDRESS_NAME_TOKEN_ETH()":"8b3e0471","ADDRESS_NAME_TOKEN_USDC()":"6a0b3f64","ADDRESS_NAME_TOKEN_WETH()":"26026d18","ADDRESS_STAKEABLE_C_ASSET_TOKEN()":"608dade9","ADDRESS_TOKEN_CHAIN_PRICEFEED()":"a652cb80","ADDRESS_TOKEN_PRICEFEED()":"057afbfe","ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT()":"a2fd43c5","BLUEPRINT()":"0072e140","BLUEPRINT_MANAGER()":"95789e1c","BLUEPRINT_MANAGER_NAME_BLUEPRINTS()":"2d1da17e","CONCRETE_MANAGER()":"2a0f4d6b","COUNTER_CLAIM_ID()":"a5be6063","COUNTER_LOAN_ID()":"724348ab","COUNTER_PORTFOLIO_ID()":"79c52aca","COUNTER_PROTECTION_ID()":"c5ad7879","COUNTER_RECEIPT_ID()":"f61e60f2","CT_REWARDS_TREASURY()":"5e61dc38","CT_STAKING_CONTRACT()":"264c1356","CT_TOKEN_ADDRESS()":"d88597de","MODULE()":"094d3a34","MODULE_MANAGER()":"8b40da7d","MODULE_MANAGER_NAME_MODULES()":"59dcf3f6","PORTFOLIOID_INDEX_TO_LOANID()":"ca6d5e33","PORTFOLIOID_INDEX_TO_USER()":"42ff308b","PORTFOLIOID_TO_USER()":"91aab3e4","PROTOCOL()":"91b9b827","PROTOCOL_MANAGER()":"ccca8911","RECEIPTID_TO_POSITION()":"d83205c0","RECEIPTID_TO_USER()":"ec11384a","ROLE_NAME_USER_TO_EXIST()":"7a25c9d3","STAKING_DURATION_AND_REWARDS()":"af895a3b","STAKING_RECEIPT_ADDRESS()":"9e5f8542","SUDO_ADMIN()":"8c3e62b6","TOKEN_LENDER_NAME_COLLATERAL_APPROVED()":"00a9d96e","USER_ID_CLAIM()":"d15263d3","USER_ID_PROTECTION()":"62a4c3df","USER_ID_PROTECTIONID()":"b70855fb","USER_ID_PROTECTION_FINANCIAL_TERMS()":"aacb7f34","USER_ID_PROTECTION_UPDATES()":"eaca3864","USER_INDEX_TO_BORROWDATA()":"7d49df3b","USER_INDEX_TO_LOANID()":"7d95de8e","USER_INDEX_TO_LOANINITIALDATA()":"61945bfc","USER_INDEX_TO_LOANSUPPLYDATA()":"678df18f","USER_INDEX_TO_LOANUPDATE()":"9d185264","USER_TO_PORTFOLIOID()":"638bf74f","USER_TO_RECEIPT_INDEX_COUNT()":"0e494332","executeActionTransaction(string,uint256,bytes,uint8)":"8d7e9e94","getActionAddress(string)":"ffbf5163","getDecimals(address)":"cf54aaa0","getLatestPrice(address)":"16345f18","requestDebtToken(address,string,string,uint256)":"5532bf81","updateProtection(address,uint256,uint256,string,string)":"1e55b1d6"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"concreteStorage_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ACL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER_NAME_ACTIONS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_USER_IMPLENTATION_CALLER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_LENDER_MARKET\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MANAGER_ACCESS_CONTROL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_CONCRETE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_MASTERVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_PORTFOLIO\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_STREAMVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_ETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_USDC\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_WETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_STAKEABLE_C_ASSET_TOKEN\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_CHAIN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER_NAME_BLUEPRINTS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONCRETE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_CLAIM_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_LOAN_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PORTFOLIO_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PROTECTION_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_RECEIPT_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_REWARDS_TREASURY\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_STAKING_CONTRACT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_TOKEN_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER_NAME_MODULES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_POSITION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLE_NAME_USER_TO_EXIST\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_DURATION_AND_REWARDS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_RECEIPT_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUDO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_LENDER_NAME_COLLATERAL_APPROVED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_CLAIM\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTIONID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_FINANCIAL_TERMS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_UPDATES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_BORROWDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANINITIALDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANSUPPLYDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANUPDATE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_PORTFOLIOID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_RECEIPT_INDEX_COUNT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation_\",\"type\":\"uint8\"}],\"name\":\"executeActionTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"}],\"name\":\"getActionAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"priceFeedAddress_\",\"type\":\"address\"}],\"name\":\"getDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"priceFeedAddress_\",\"type\":\"address\"}],\"name\":\"getLatestPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"lenderName_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"pointer_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"}],\"name\":\"requestDebtToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"uniqueId_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"lenderName_\",\"type\":\"string\"}],\"name\":\"updateProtection\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is used to manage loans and protections to ensure a user never gets liqudated\",\"kind\":\"dev\",\"methods\":{\"getDecimals(address)\":{\"params\":{\"priceFeedAddress_\":\"The address of the token to check for the decimals\"},\"returns\":{\"_0\":\"The decimals of the token\"}},\"getLatestPrice(address)\":{\"params\":{\"priceFeedAddress_\":\"The address of the token to check for the latest price\"},\"returns\":{\"_0\":\"The latest price of the token\"}}},\"title\":\"ForeclosureBlueprint\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getDecimals(address)\":{\"notice\":\"Gets the decimals of a token from Chainlink\"},\"getLatestPrice(address)\":{\"notice\":\"Gets the latest price of a token from Chainlink\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/borrow/blueprints/LTVProtect/ForeclosureBlueprint.sol\":\"ForeclosureBlueprint\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":10000000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd\",\"dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x51ccb6df77b7f738be30d7f023cf76532d90e4b70b2c2df311061240a3762ee4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97e820398691048f12a39bd44ad4a65a30d04b56aba3130fe078d6bc3a27e909\",\"dweb:/ipfs/QmYsXHTrn7PhvdV2QBqiC7mDnBPgpFAcPjMAKRWkkJgXBR\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"src/borrow/actions/claim/interfaces/IClaim.sol\":{\"keccak256\":\"0x7e56014d0b71796aa85a5f6af8a14328595fb19e494b34e7b23bdebd10919894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bbefbc1f26d0da6fd33261c35393c8507f675d350657ef625a803a3f0f6eada\",\"dweb:/ipfs/QmNrekVcmuxmeUsyC1nLYSgKgsH6rBw9Z3gHRV7p8D5J9U\"]},\"src/borrow/actions/loan/interfaces/ILoan.sol\":{\"keccak256\":\"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0\",\"dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ\"]},\"src/borrow/actions/protection/interfaces/IProtection.sol\":{\"keccak256\":\"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d\",\"dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2\"]},\"src/borrow/blueprints/LTVProtect/ForeclosureBlueprint.sol\":{\"keccak256\":\"0x540b1f0827c1cf79692703be0117d128962c1c1a93453ce03f9dacbe4891c426\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://023ad352fdef45e32a055ce623b380bd83d2d82d419c73cc47fe919c2457794a\",\"dweb:/ipfs/QmXqm2tNiPaMn9YkkPzjgKf1QjS45yAaK32v5BbsJ7KWNd\"]},\"src/borrow/utils/implementations/interfaces/ILenderBase.sol\":{\"keccak256\":\"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f\",\"dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK\"]},\"src/core/ActionManager.sol\":{\"keccak256\":\"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831\",\"dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG\"]},\"src/core/Executor.sol\":{\"keccak256\":\"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f\",\"dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h\"]},\"src/core/interfaces/IACL.sol\":{\"keccak256\":\"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a\",\"dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo\"]},\"src/core/interfaces/IConcreteStorage.sol\":{\"keccak256\":\"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8\",\"dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF\"]},\"src/core/interfaces/IERC165.sol\":{\"keccak256\":\"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473\",\"dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7\"]},\"src/core/utils/ConcreteRoles.sol\":{\"keccak256\":\"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab\",\"dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72\"]},\"src/core/utils/OnlyRole.sol\":{\"keccak256\":\"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a\",\"dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN\"]},\"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol\":{\"keccak256\":\"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980\",\"dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj\"]},\"src/helpers/Enum.sol\":{\"keccak256\":\"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2\",\"dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh\"]},\"src/helpers/Pointer.sol\":{\"keccak256\":\"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c\",\"dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ\"]},\"src/helpers/StorageHandler.sol\":{\"keccak256\":\"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab\",\"dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa\"]},\"src/helpers/base/BlueprintBase.sol\":{\"keccak256\":\"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0\",\"dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC\"]},\"src/helpers/chainlink/ChainlinkOraclePrice.sol\":{\"keccak256\":\"0x05969db662059819fe78f8364dc37e2f47a4bc43d195a03a32b260dbd58e8314\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25660a2758e7486c8f28faa9da743d354c5a18316789baa45a66beb4fde06f\",\"dweb:/ipfs/QmUs7i7kRsgymGmX7v68pYSm7AdX4jKeaRPbGkzrovcicv\"]},\"src/libraries/Conversion.sol\":{\"keccak256\":\"0x40cae95ca04ad9f6c79c01cc38ce3161546712c519ca8bd00ec68e2f49dcbb6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70969f14e9ec93eabbb3bb8f9f7f9496287e74825815c1f00870fc024d4e34b8\",\"dweb:/ipfs/QmTrUkbZVETdXTT35FtwomsMRtniPNMboYh3N3JWdoSo1j\"]},\"src/libraries/Security.sol\":{\"keccak256\":\"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c\",\"dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY\"]},\"src/libraries/StorageKeyLib.sol\":{\"keccak256\":\"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f\",\"dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"concreteStorage_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"ACL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_ACTION_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_LENDER_MARKET","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MODULE_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_CONCRETE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_MASTERVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_PORTFOLIO","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_STREAMVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_ETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_USDC","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_WETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONCRETE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_CLAIM_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_LOAN_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PORTFOLIO_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PROTECTION_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_RECEIPT_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_REWARDS_TREASURY","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_STAKING_CONTRACT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_TOKEN_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER_NAME_MODULES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_POSITION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROLE_NAME_USER_TO_EXIST","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_DURATION_AND_REWARDS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_RECEIPT_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SUDO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_CLAIM","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTIONID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_UPDATES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_BORROWDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANUPDATE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_PORTFOLIOID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"executeActionTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"}],"stateMutability":"view","type":"function","name":"getActionAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"priceFeedAddress_","type":"address"}],"stateMutability":"view","type":"function","name":"getDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"priceFeedAddress_","type":"address"}],"stateMutability":"view","type":"function","name":"getLatestPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"string","name":"lenderName_","type":"string"},{"internalType":"string","name":"pointer_","type":"string"},{"internalType":"uint256","name":"loanId_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"requestDebtToken"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"uint256","name":"uniqueId_","type":"uint256"},{"internalType":"uint256","name":"loanId_","type":"uint256"},{"internalType":"string","name":"pointer_","type":"string"},{"internalType":"string","name":"lenderName_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateProtection"}],"devdoc":{"kind":"dev","methods":{"getDecimals(address)":{"params":{"priceFeedAddress_":"The address of the token to check for the decimals"},"returns":{"_0":"The decimals of the token"}},"getLatestPrice(address)":{"params":{"priceFeedAddress_":"The address of the token to check for the latest price"},"returns":{"_0":"The latest price of the token"}}},"version":1},"userdoc":{"kind":"user","methods":{"getDecimals(address)":{"notice":"Gets the decimals of a token from Chainlink"},"getLatestPrice(address)":{"notice":"Gets the latest price of a token from Chainlink"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","chainlink/=lib/chainlink/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":10000000},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/borrow/blueprints/LTVProtect/ForeclosureBlueprint.sol":"ForeclosureBlueprint"},"evmVersion":"paris","libraries":{}},"sources":{"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol":{"keccak256":"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd","urls":["bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7","dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1","urls":["bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd","dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x51ccb6df77b7f738be30d7f023cf76532d90e4b70b2c2df311061240a3762ee4","urls":["bzz-raw://97e820398691048f12a39bd44ad4a65a30d04b56aba3130fe078d6bc3a27e909","dweb:/ipfs/QmYsXHTrn7PhvdV2QBqiC7mDnBPgpFAcPjMAKRWkkJgXBR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"src/borrow/actions/claim/interfaces/IClaim.sol":{"keccak256":"0x7e56014d0b71796aa85a5f6af8a14328595fb19e494b34e7b23bdebd10919894","urls":["bzz-raw://0bbefbc1f26d0da6fd33261c35393c8507f675d350657ef625a803a3f0f6eada","dweb:/ipfs/QmNrekVcmuxmeUsyC1nLYSgKgsH6rBw9Z3gHRV7p8D5J9U"],"license":"MIT"},"src/borrow/actions/loan/interfaces/ILoan.sol":{"keccak256":"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4","urls":["bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0","dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ"],"license":"MIT"},"src/borrow/actions/protection/interfaces/IProtection.sol":{"keccak256":"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935","urls":["bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d","dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2"],"license":"MIT"},"src/borrow/blueprints/LTVProtect/ForeclosureBlueprint.sol":{"keccak256":"0x540b1f0827c1cf79692703be0117d128962c1c1a93453ce03f9dacbe4891c426","urls":["bzz-raw://023ad352fdef45e32a055ce623b380bd83d2d82d419c73cc47fe919c2457794a","dweb:/ipfs/QmXqm2tNiPaMn9YkkPzjgKf1QjS45yAaK32v5BbsJ7KWNd"],"license":"MIT"},"src/borrow/utils/implementations/interfaces/ILenderBase.sol":{"keccak256":"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7","urls":["bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f","dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK"],"license":"MIT"},"src/core/ActionManager.sol":{"keccak256":"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a","urls":["bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831","dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG"],"license":"MIT"},"src/core/Executor.sol":{"keccak256":"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e","urls":["bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f","dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h"],"license":"MIT"},"src/core/interfaces/IACL.sol":{"keccak256":"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5","urls":["bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a","dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo"],"license":"MIT"},"src/core/interfaces/IConcreteStorage.sol":{"keccak256":"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9","urls":["bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8","dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF"],"license":"MIT"},"src/core/interfaces/IERC165.sol":{"keccak256":"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10","urls":["bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473","dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7"],"license":"MIT"},"src/core/utils/ConcreteRoles.sol":{"keccak256":"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e","urls":["bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab","dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72"],"license":"MIT"},"src/core/utils/OnlyRole.sol":{"keccak256":"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11","urls":["bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a","dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN"],"license":"MIT"},"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol":{"keccak256":"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f","urls":["bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980","dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj"],"license":"MIT"},"src/helpers/Enum.sol":{"keccak256":"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559","urls":["bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2","dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh"],"license":"MIT"},"src/helpers/Pointer.sol":{"keccak256":"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a","urls":["bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c","dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ"],"license":"MIT"},"src/helpers/StorageHandler.sol":{"keccak256":"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51","urls":["bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab","dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa"],"license":"MIT"},"src/helpers/base/BlueprintBase.sol":{"keccak256":"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492","urls":["bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0","dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC"],"license":"MIT"},"src/helpers/chainlink/ChainlinkOraclePrice.sol":{"keccak256":"0x05969db662059819fe78f8364dc37e2f47a4bc43d195a03a32b260dbd58e8314","urls":["bzz-raw://8e25660a2758e7486c8f28faa9da743d354c5a18316789baa45a66beb4fde06f","dweb:/ipfs/QmUs7i7kRsgymGmX7v68pYSm7AdX4jKeaRPbGkzrovcicv"],"license":"MIT"},"src/libraries/Conversion.sol":{"keccak256":"0x40cae95ca04ad9f6c79c01cc38ce3161546712c519ca8bd00ec68e2f49dcbb6f","urls":["bzz-raw://70969f14e9ec93eabbb3bb8f9f7f9496287e74825815c1f00870fc024d4e34b8","dweb:/ipfs/QmTrUkbZVETdXTT35FtwomsMRtniPNMboYh3N3JWdoSo1j"],"license":"MIT"},"src/libraries/Security.sol":{"keccak256":"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b","urls":["bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c","dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY"],"license":"MIT"},"src/libraries/StorageKeyLib.sol":{"keccak256":"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7","urls":["bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f","dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/borrow/blueprints/LTVProtect/ForeclosureBlueprint.sol","id":60670,"exportedSymbols":{"BlueprintBase":[71548],"ChainlinkOraclePrice":[71810],"Conversion":[74379],"Enum":[71189],"ForeclosureBlueprint":[60669],"IClaim":[54631],"IERC20":[45751],"ILoan":[56049],"IProtection":[57273],"SafeERC20":[46103],"Security":[75484]},"nodeType":"SourceUnit","src":"31:14433:84","nodes":[{"id":59454,"nodeType":"PragmaDirective","src":"31:23:84","nodes":[],"literals":["solidity","0.8",".20"]},{"id":59456,"nodeType":"ImportDirective","src":"56:49:84","nodes":[],"absolutePath":"src/helpers/Enum.sol","file":"../../../helpers/Enum.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":71190,"symbolAliases":[{"foreign":{"id":59455,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"65:4:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59458,"nodeType":"ImportDirective","src":"106:72:84","nodes":[],"absolutePath":"src/helpers/base/BlueprintBase.sol","file":"../../../helpers/base/BlueprintBase.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":71549,"symbolAliases":[{"foreign":{"id":59457,"name":"BlueprintBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71548,"src":"115:13:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59460,"nodeType":"ImportDirective","src":"179:59:84","nodes":[],"absolutePath":"src/libraries/Security.sol","file":"../../../libraries/Security.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":75485,"symbolAliases":[{"foreign":{"id":59459,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"188:8:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59462,"nodeType":"ImportDirective","src":"239:64:84","nodes":[],"absolutePath":"src/borrow/actions/loan/interfaces/ILoan.sol","file":"../../actions/loan/interfaces/ILoan.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":56050,"symbolAliases":[{"foreign":{"id":59461,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"248:5:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59464,"nodeType":"ImportDirective","src":"304:67:84","nodes":[],"absolutePath":"src/borrow/actions/claim/interfaces/IClaim.sol","file":"../../actions/claim/interfaces/IClaim.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":54632,"symbolAliases":[{"foreign":{"id":59463,"name":"IClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"313:6:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59466,"nodeType":"ImportDirective","src":"372:97:84","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../../../../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":45752,"symbolAliases":[{"foreign":{"id":59465,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45751,"src":"381:6:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59468,"nodeType":"ImportDirective","src":"470:82:84","nodes":[],"absolutePath":"src/borrow/actions/protection/interfaces/IProtection.sol","file":"../../actions/protection/interfaces/IProtection.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":57274,"symbolAliases":[{"foreign":{"id":59467,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"479:11:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59470,"nodeType":"ImportDirective","src":"553:91:84","nodes":[],"absolutePath":"src/helpers/chainlink/ChainlinkOraclePrice.sol","file":"../../../helpers/chainlink/ChainlinkOraclePrice.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":71811,"symbolAliases":[{"foreign":{"id":59469,"name":"ChainlinkOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71810,"src":"562:20:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59472,"nodeType":"ImportDirective","src":"645:109:84","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"../../../../lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":46104,"symbolAliases":[{"foreign":{"id":59471,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46103,"src":"654:9:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59474,"nodeType":"ImportDirective","src":"755:63:84","nodes":[],"absolutePath":"src/libraries/Conversion.sol","file":"../../../libraries/Conversion.sol","nameLocation":"-1:-1:-1","scope":60670,"sourceUnit":74380,"symbolAliases":[{"foreign":{"id":59473,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"764:10:84","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60669,"nodeType":"ContractDefinition","src":"959:13504:84","nodes":[{"id":59488,"nodeType":"FunctionDefinition","src":"1034:73:84","nodes":[],"body":{"id":59487,"nodeType":"Block","src":"1104:3:84","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":59484,"name":"concreteStorage_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59481,"src":"1086:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":59485,"kind":"baseConstructorSpecifier","modifierName":{"id":59483,"name":"BlueprintBase","nameLocations":["1072:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"1072:13:84"},"nodeType":"ModifierInvocation","src":"1072:31:84"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":59482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59481,"mutability":"mutable","name":"concreteStorage_","nameLocation":"1054:16:84","nodeType":"VariableDeclaration","scope":59488,"src":"1046:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59480,"name":"address","nodeType":"ElementaryTypeName","src":"1046:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1045:26:84"},"returnParameters":{"id":59486,"nodeType":"ParameterList","parameters":[],"src":"1104:0:84"},"scope":60669,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59492,"nodeType":"UsingForDirective","src":"1113:27:84","nodes":[],"global":false,"libraryName":{"id":59489,"name":"SafeERC20","nameLocations":["1119:9:84"],"nodeType":"IdentifierPath","referencedDeclaration":46103,"src":"1119:9:84"},"typeName":{"id":59491,"nodeType":"UserDefinedTypeName","pathNode":{"id":59490,"name":"IERC20","nameLocations":["1133:6:84"],"nodeType":"IdentifierPath","referencedDeclaration":45751,"src":"1133:6:84"},"referencedDeclaration":45751,"src":"1133:6:84","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}}},{"id":59646,"nodeType":"FunctionDefinition","src":"1251:1624:84","nodes":[],"body":{"id":59645,"nodeType":"Block","src":"1419:1456:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":59506,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59494,"src":"1454:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59503,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1429:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1438:15:84","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"1429:24:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":59507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1429:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59508,"nodeType":"ExpressionStatement","src":"1429:31:84"},{"expression":{"arguments":[{"id":59512,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59500,"src":"1492:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59509,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1470:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1479:12:84","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"1470:21:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":59513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1470:30:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59514,"nodeType":"ExpressionStatement","src":"1470:30:84"},{"assignments":[59516],"declarations":[{"constant":false,"id":59516,"mutability":"mutable","name":"streamVaultKey","nameLocation":"1518:14:84","nodeType":"VariableDeclaration","scope":59645,"src":"1510:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1510:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59524,"initialValue":{"arguments":[{"id":59518,"name":"ADDRESS_NAME_STREAMVAULT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71288,"src":"1545:24:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":59521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1582:3:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":59519,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1571:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1575:6:84","memberName":"encode","nodeType":"MemberAccess","src":"1571:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1571:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59517,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"1535:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1535:52:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1510:77:84"},{"assignments":[59526],"declarations":[{"constant":false,"id":59526,"mutability":"mutable","name":"streamVaultAddress","nameLocation":"1605:18:84","nodeType":"VariableDeclaration","scope":59645,"src":"1597:26:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59525,"name":"address","nodeType":"ElementaryTypeName","src":"1597:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":59531,"initialValue":{"arguments":[{"id":59529,"name":"streamVaultKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59516,"src":"1653:14:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59527,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"1626:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1642:10:84","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"1626:26:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":59530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1626:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1597:71:84"},{"assignments":[59536],"declarations":[{"constant":false,"id":59536,"mutability":"mutable","name":"borrowDetails","nameLocation":"1706:13:84","nodeType":"VariableDeclaration","scope":59645,"src":"1678:41:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData"},"typeName":{"id":59535,"nodeType":"UserDefinedTypeName","pathNode":{"id":59534,"name":"ILoan.LoanBorrowData","nameLocations":["1678:5:84","1684:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":56034,"src":"1678:20:84"},"referencedDeclaration":56034,"src":"1678:20:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_storage_ptr","typeString":"struct ILoan.LoanBorrowData"}},"visibility":"internal"}],"id":59541,"initialValue":{"arguments":[{"id":59538,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59494,"src":"1736:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59539,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59500,"src":"1743:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59537,"name":"getBorrowData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60439,"src":"1722:13:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanBorrowData_$56034_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanBorrowData memory)"}},"id":59540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1722:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"nodeType":"VariableDeclarationStatement","src":"1678:73:84"},{"assignments":[59543],"declarations":[{"constant":false,"id":59543,"mutability":"mutable","name":"key","nameLocation":"1769:3:84","nodeType":"VariableDeclaration","scope":59645,"src":"1761:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59542,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1761:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59551,"initialValue":{"arguments":[{"id":59545,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59498,"src":"1785:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":59548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1806:3:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":59546,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1795:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1799:6:84","memberName":"encode","nodeType":"MemberAccess","src":"1795:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1795:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59544,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"1775:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1775:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1761:50:84"},{"assignments":[59553],"declarations":[{"constant":false,"id":59553,"mutability":"mutable","name":"marketAddress","nameLocation":"1829:13:84","nodeType":"VariableDeclaration","scope":59645,"src":"1821:21:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59552,"name":"address","nodeType":"ElementaryTypeName","src":"1821:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":59558,"initialValue":{"arguments":[{"id":59556,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59543,"src":"1872:3:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59554,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"1845:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1861:10:84","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"1845:26:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":59557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1821:55:84"},{"assignments":[59560],"declarations":[{"constant":false,"id":59560,"mutability":"mutable","name":"debt","nameLocation":"1894:4:84","nodeType":"VariableDeclaration","scope":59645,"src":"1886:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59559,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59571,"initialValue":{"arguments":[{"id":59562,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59494,"src":"1921:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59563,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59498,"src":"1928:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59564,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59496,"src":"1938:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":59565,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"1951:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":59566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1965:16:84","memberName":"debtTokenAddress","nodeType":"MemberAccess","referencedDeclaration":56027,"src":"1951:30:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":59567,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"1983:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":59568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1997:8:84","memberName":"rateMode","nodeType":"MemberAccess","referencedDeclaration":56031,"src":"1983:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59569,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59500,"src":"2007:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59561,"name":"getDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60402,"src":"1913:7:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,string memory,string memory,address,uint256,uint256) view returns (uint256)"}},"id":59570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1913:102:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1886:129:84"},{"assignments":[59574],"declarations":[{"constant":false,"id":59574,"mutability":"mutable","name":"tokenContract","nameLocation":"2032:13:84","nodeType":"VariableDeclaration","scope":59645,"src":"2025:20:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"},"typeName":{"id":59573,"nodeType":"UserDefinedTypeName","pathNode":{"id":59572,"name":"IERC20","nameLocations":["2025:6:84"],"nodeType":"IdentifierPath","referencedDeclaration":45751,"src":"2025:6:84"},"referencedDeclaration":45751,"src":"2025:6:84","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"visibility":"internal"}],"id":59579,"initialValue":{"arguments":[{"expression":{"id":59576,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"2055:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":59577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2069:16:84","memberName":"debtTokenAddress","nodeType":"MemberAccess","referencedDeclaration":56027,"src":"2055:30:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59575,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45751,"src":"2048:6:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$45751_$","typeString":"type(contract IERC20)"}},"id":59578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2048:38:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"2025:61:84"},{"expression":{"arguments":[{"arguments":[{"id":59584,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59494,"src":"2137:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59585,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59496,"src":"2144:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59586,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59500,"src":"2157:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59583,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60577,"src":"2118:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":59587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2118:47:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59588,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59560,"src":"2167:4:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59580,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59574,"src":"2096:13:84","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"id":59582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2110:7:84","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":45738,"src":"2096:21:84","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":59589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2096:76:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59590,"nodeType":"ExpressionStatement","src":"2096:76:84"},{"assignments":[59592],"declarations":[{"constant":false,"id":59592,"mutability":"mutable","name":"transferData","nameLocation":"2195:12:84","nodeType":"VariableDeclaration","scope":59645,"src":"2182:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59591,"name":"bytes","nodeType":"ElementaryTypeName","src":"2182:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59612,"initialValue":{"arguments":[{"hexValue":"7472616e73666572546f6b656e28616464726573732c616464726573732c616464726573732c75696e7432353629","id":59595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2247:48:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c54de4f88e70d8b8516170116bb3a4f0d56441744f63fa5dccdbab48861ab81","typeString":"literal_string \"transferToken(address,address,address,uint256)\""},"value":"transferToken(address,address,address,uint256)"},{"arguments":[{"expression":{"id":59598,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"2317:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":59599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2331:16:84","memberName":"debtTokenAddress","nodeType":"MemberAccess","referencedDeclaration":56027,"src":"2317:30:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59597,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2309:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59596,"name":"address","nodeType":"ElementaryTypeName","src":"2309:7:84","typeDescriptions":{}}},"id":59600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2309:39:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":59604,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59494,"src":"2389:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59605,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59496,"src":"2396:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59606,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59500,"src":"2409:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59603,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60577,"src":"2370:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":59607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2370:47:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2362:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":59601,"name":"address","nodeType":"ElementaryTypeName","src":"2362:8:84","stateMutability":"payable","typeDescriptions":{}}},"id":59608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2362:56:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":59609,"name":"streamVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59526,"src":"2432:18:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59610,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59560,"src":"2464:4:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c54de4f88e70d8b8516170116bb3a4f0d56441744f63fa5dccdbab48861ab81","typeString":"literal_string \"transferToken(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59593,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2210:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2214:19:84","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2210:23:84","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":59611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2210:268:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2182:296:84"},{"assignments":[59614],"declarations":[{"constant":false,"id":59614,"mutability":"mutable","name":"success","nameLocation":"2493:7:84","nodeType":"VariableDeclaration","scope":59645,"src":"2488:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59613,"name":"bool","nodeType":"ElementaryTypeName","src":"2488:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":59623,"initialValue":{"arguments":[{"hexValue":"5472616e73666572546f6b656e416374696f6e","id":59616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2528:21:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0e2518d01e9dcc67c7bfe96295c342b3c210dbf41b28f5f48db5f395501d52f","typeString":"literal_string \"TransferTokenAction\""},"value":"TransferTokenAction"},{"hexValue":"30","id":59617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2551:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":59618,"name":"transferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59592,"src":"2554:12:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":59619,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"2568:4:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":59620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2573:9:84","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"2568:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":59621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2583:4:84","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"2568:19:84","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0e2518d01e9dcc67c7bfe96295c342b3c210dbf41b28f5f48db5f395501d52f","typeString":"literal_string \"TransferTokenAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":59615,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"2503:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":59622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:85:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2488:100:84"},{"expression":{"arguments":[{"id":59625,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59614,"src":"2606:7:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205472616e73666572546f6b656e416374696f6e206661696c6564","id":59626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2615:33:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc7018dc2c87b29e4aa58c438d616250c98ee2296837f76dc3d8a354ae82532f","typeString":"literal_string \"ERR: TransferTokenAction failed\""},"value":"ERR: TransferTokenAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bc7018dc2c87b29e4aa58c438d616250c98ee2296837f76dc3d8a354ae82532f","typeString":"literal_string \"ERR: TransferTokenAction failed\""}],"id":59624,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2598:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2598:51:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59628,"nodeType":"ExpressionStatement","src":"2598:51:84"},{"expression":{"arguments":[{"arguments":[{"id":59632,"name":"marketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59553,"src":"2695:13:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":59633,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"2710:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":59634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2724:16:84","memberName":"debtTokenAddress","nodeType":"MemberAccess","referencedDeclaration":56027,"src":"2710:30:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":59635,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59536,"src":"2742:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":59636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2756:8:84","memberName":"rateMode","nodeType":"MemberAccess","referencedDeclaration":56031,"src":"2742:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59637,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59560,"src":"2766:4:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59630,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2684:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2688:6:84","memberName":"encode","nodeType":"MemberAccess","src":"2684:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2684:87:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":59639,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59496,"src":"2785:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59640,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59494,"src":"2810:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59641,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59500,"src":"2829:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59642,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59498,"src":"2850:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":59629,"name":"repayLender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59724,"src":"2659:11:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (bytes memory,string memory,address,uint256,string memory)"}},"id":59643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2659:209:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59644,"nodeType":"ExpressionStatement","src":"2659:209:84"}]},"functionSelector":"5532bf81","implemented":true,"kind":"function","modifiers":[],"name":"requestDebtToken","nameLocation":"1260:16:84","parameters":{"id":59501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59494,"mutability":"mutable","name":"user_","nameLocation":"1294:5:84","nodeType":"VariableDeclaration","scope":59646,"src":"1286:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59493,"name":"address","nodeType":"ElementaryTypeName","src":"1286:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59496,"mutability":"mutable","name":"lenderName_","nameLocation":"1323:11:84","nodeType":"VariableDeclaration","scope":59646,"src":"1309:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59495,"name":"string","nodeType":"ElementaryTypeName","src":"1309:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":59498,"mutability":"mutable","name":"pointer_","nameLocation":"1358:8:84","nodeType":"VariableDeclaration","scope":59646,"src":"1344:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59497,"name":"string","nodeType":"ElementaryTypeName","src":"1344:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":59500,"mutability":"mutable","name":"loanId_","nameLocation":"1384:7:84","nodeType":"VariableDeclaration","scope":59646,"src":"1376:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1376:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1276:121:84"},"returnParameters":{"id":59502,"nodeType":"ParameterList","parameters":[],"src":"1419:0:84"},"scope":60669,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":59724,"nodeType":"FunctionDefinition","src":"2881:849:84","nodes":[],"body":{"id":59723,"nodeType":"Block","src":"3075:655:84","nodes":[],"statements":[{"assignments":[59660],"declarations":[{"constant":false,"id":59660,"mutability":"mutable","name":"repData","nameLocation":"3098:7:84","nodeType":"VariableDeclaration","scope":59723,"src":"3085:20:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59659,"name":"bytes","nodeType":"ElementaryTypeName","src":"3085:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59675,"initialValue":{"arguments":[{"hexValue":"72657061792862797465732c75696e743235362c6164647265737329","id":59663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3145:30:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_d09d1c0cd5235b402c265950dd22e16bfd7ff357f3211220aad5565d313a76e3","typeString":"literal_string \"repay(bytes,uint256,address)\""},"value":"repay(bytes,uint256,address)"},{"id":59664,"name":"repayData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59648,"src":"3177:9:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":59665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3188:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"arguments":[{"id":59669,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59652,"src":"3218:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59670,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59650,"src":"3225:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59671,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59654,"src":"3238:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59668,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60577,"src":"3199:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":59672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3199:47:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3191:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59666,"name":"address","nodeType":"ElementaryTypeName","src":"3191:7:84","typeDescriptions":{}}},"id":59673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3191:56:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d09d1c0cd5235b402c265950dd22e16bfd7ff357f3211220aad5565d313a76e3","typeString":"literal_string \"repay(bytes,uint256,address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59661,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3108:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3112:19:84","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3108:23:84","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":59674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3108:149:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3085:172:84"},{"assignments":[59677],"declarations":[{"constant":false,"id":59677,"mutability":"mutable","name":"success","nameLocation":"3272:7:84","nodeType":"VariableDeclaration","scope":59723,"src":"3267:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59676,"name":"bool","nodeType":"ElementaryTypeName","src":"3267:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":59686,"initialValue":{"arguments":[{"hexValue":"5265706179416374696f6e","id":59679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3307:13:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_a217ff37334de0b722317a00a3757aba406aa44016a02cf62262dbb0deba37f4","typeString":"literal_string \"RepayAction\""},"value":"RepayAction"},{"hexValue":"30","id":59680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3322:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":59681,"name":"repData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59660,"src":"3325:7:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":59682,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"3334:4:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":59683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3339:9:84","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"3334:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":59684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3349:4:84","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"3334:19:84","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a217ff37334de0b722317a00a3757aba406aa44016a02cf62262dbb0deba37f4","typeString":"literal_string \"RepayAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":59678,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"3282:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":59685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3282:72:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3267:87:84"},{"expression":{"arguments":[{"id":59688,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59677,"src":"3372:7:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"457865637574696f6e206661696c6564","id":59689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3381:18:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""},"value":"Execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""}],"id":59687,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3364:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3364:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59691,"nodeType":"ExpressionStatement","src":"3364:36:84"},{"assignments":[59693],"declarations":[{"constant":false,"id":59693,"mutability":"mutable","name":"FTMkey","nameLocation":"3418:6:84","nodeType":"VariableDeclaration","scope":59723,"src":"3410:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59692,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3410:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59702,"initialValue":{"arguments":[{"id":59695,"name":"USER_ID_PROTECTION_FINANCIAL_TERMS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71243,"src":"3437:34:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":59698,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59652,"src":"3484:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59699,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59654,"src":"3491:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59696,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3473:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3477:6:84","memberName":"encode","nodeType":"MemberAccess","src":"3473:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3473:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59694,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"3427:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3427:73:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3410:90:84"},{"assignments":[59704],"declarations":[{"constant":false,"id":59704,"mutability":"mutable","name":"protectionFinancialTermsData","nameLocation":"3523:28:84","nodeType":"VariableDeclaration","scope":59723,"src":"3510:41:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59703,"name":"bytes","nodeType":"ElementaryTypeName","src":"3510:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59709,"initialValue":{"arguments":[{"id":59707,"name":"FTMkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59693,"src":"3579:6:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59705,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"3554:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3570:8:84","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"3554:24:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":59708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3554:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3510:76:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59710,"name":"protectionFinancialTermsData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59704,"src":"3600:28:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":59711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3629:6:84","memberName":"length","nodeType":"MemberAccess","src":"3600:35:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":59712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3639:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3600:40:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59722,"nodeType":"IfStatement","src":"3596:128:84","trueBody":{"id":59721,"nodeType":"Block","src":"3642:82:84","statements":[{"expression":{"arguments":[{"id":59715,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59652,"src":"3675:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59716,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59650,"src":"3682:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59717,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59654,"src":"3695:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59718,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59656,"src":"3704:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":59714,"name":"withdrawCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59950,"src":"3656:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory,uint256,string memory)"}},"id":59719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3656:57:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59720,"nodeType":"ExpressionStatement","src":"3656:57:84"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"repayLender","nameLocation":"2890:11:84","parameters":{"id":59657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59648,"mutability":"mutable","name":"repayData","nameLocation":"2924:9:84","nodeType":"VariableDeclaration","scope":59724,"src":"2911:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59647,"name":"bytes","nodeType":"ElementaryTypeName","src":"2911:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":59650,"mutability":"mutable","name":"lenderName_","nameLocation":"2957:11:84","nodeType":"VariableDeclaration","scope":59724,"src":"2943:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59649,"name":"string","nodeType":"ElementaryTypeName","src":"2943:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":59652,"mutability":"mutable","name":"user_","nameLocation":"2986:5:84","nodeType":"VariableDeclaration","scope":59724,"src":"2978:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59651,"name":"address","nodeType":"ElementaryTypeName","src":"2978:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59654,"mutability":"mutable","name":"loanId_","nameLocation":"3009:7:84","nodeType":"VariableDeclaration","scope":59724,"src":"3001:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59653,"name":"uint256","nodeType":"ElementaryTypeName","src":"3001:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59656,"mutability":"mutable","name":"pointer_","nameLocation":"3040:8:84","nodeType":"VariableDeclaration","scope":59724,"src":"3026:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59655,"name":"string","nodeType":"ElementaryTypeName","src":"3026:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2901:153:84"},"returnParameters":{"id":59658,"nodeType":"ParameterList","parameters":[],"src":"3075:0:84"},"scope":60669,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":59802,"nodeType":"FunctionDefinition","src":"3796:898:84","nodes":[],"body":{"id":59801,"nodeType":"Block","src":"3989:705:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":59740,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59726,"src":"4024:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59737,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"3999:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4008:15:84","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"3999:24:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":59741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3999:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59742,"nodeType":"ExpressionStatement","src":"3999:31:84"},{"expression":{"arguments":[{"id":59746,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59728,"src":"4062:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59743,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"4040:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4049:12:84","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"4040:21:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":59747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4040:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59748,"nodeType":"ExpressionStatement","src":"4040:32:84"},{"expression":{"arguments":[{"id":59752,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59730,"src":"4104:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59749,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"4082:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4091:12:84","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"4082:21:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":59753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4082:30:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59754,"nodeType":"ExpressionStatement","src":"4082:30:84"},{"assignments":[59756],"declarations":[{"constant":false,"id":59756,"mutability":"mutable","name":"updateProtectionData","nameLocation":"4136:20:84","nodeType":"VariableDeclaration","scope":59801,"src":"4123:33:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59755,"name":"bytes","nodeType":"ElementaryTypeName","src":"4123:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59764,"initialValue":{"arguments":[{"expression":{"id":59759,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4170:5:84","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":59760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4176:9:84","memberName":"timestamp","nodeType":"MemberAccess","src":"4170:15:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":59761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4187:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":59762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4190:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":59757,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4159:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4163:6:84","memberName":"encode","nodeType":"MemberAccess","src":"4159:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4159:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4123:69:84"},{"assignments":[59766],"declarations":[{"constant":false,"id":59766,"mutability":"mutable","name":"updateLoanData","nameLocation":"4215:14:84","nodeType":"VariableDeclaration","scope":59801,"src":"4202:27:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59765,"name":"bytes","nodeType":"ElementaryTypeName","src":"4202:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59777,"initialValue":{"arguments":[{"hexValue":"75706461746550726f74656374696f6e2862797465732c616464726573732c75696e743235362c75696e743829","id":59769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4269:47:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_27365747d872e37e02f6fefd0c106156c8004e00c21bcd0c217df817a2e240e4","typeString":"literal_string \"updateProtection(bytes,address,uint256,uint8)\""},"value":"updateProtection(bytes,address,uint256,uint8)"},{"id":59770,"name":"updateProtectionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59756,"src":"4330:20:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":59771,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59726,"src":"4364:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59772,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59730,"src":"4383:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":59773,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"4404:11:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":59774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4416:11:84","memberName":"UpdateField","nodeType":"MemberAccess","referencedDeclaration":57229,"src":"4404:23:84","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateField_$57229_$","typeString":"type(enum IProtection.UpdateField)"}},"id":59775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4428:3:84","memberName":"ALL","nodeType":"MemberAccess","referencedDeclaration":57228,"src":"4404:27:84","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$57229","typeString":"enum IProtection.UpdateField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27365747d872e37e02f6fefd0c106156c8004e00c21bcd0c217df817a2e240e4","typeString":"literal_string \"updateProtection(bytes,address,uint256,uint8)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_UpdateField_$57229","typeString":"enum IProtection.UpdateField"}],"expression":{"id":59767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4232:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4236:19:84","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4232:23:84","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":59776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4232:209:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4202:239:84"},{"assignments":[59779],"declarations":[{"constant":false,"id":59779,"mutability":"mutable","name":"success","nameLocation":"4456:7:84","nodeType":"VariableDeclaration","scope":59801,"src":"4451:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59778,"name":"bool","nodeType":"ElementaryTypeName","src":"4451:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":59788,"initialValue":{"arguments":[{"hexValue":"55706461746550726f74656374696f6e416374696f6e","id":59781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4491:24:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_06c512975e7c12f3a96bcfaa2c34e16ad5558594e10ca5049dc47b6984fb8c62","typeString":"literal_string \"UpdateProtectionAction\""},"value":"UpdateProtectionAction"},{"hexValue":"30","id":59782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4517:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":59783,"name":"updateLoanData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59766,"src":"4520:14:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":59784,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"4536:4:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":59785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4541:9:84","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"4536:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":59786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4551:4:84","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"4536:19:84","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_06c512975e7c12f3a96bcfaa2c34e16ad5558594e10ca5049dc47b6984fb8c62","typeString":"literal_string \"UpdateProtectionAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":59780,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"4466:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":59787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4466:90:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4451:105:84"},{"expression":{"arguments":[{"id":59790,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59779,"src":"4574:7:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a2055706461746550726f74656374696f6e416374696f6e206661696c6564","id":59791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4583:36:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_3398657e09bbe82e2e077f1391ae572f600128ec4522b6447520c28beae69af3","typeString":"literal_string \"ERR: UpdateProtectionAction failed\""},"value":"ERR: UpdateProtectionAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3398657e09bbe82e2e077f1391ae572f600128ec4522b6447520c28beae69af3","typeString":"literal_string \"ERR: UpdateProtectionAction failed\""}],"id":59789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4566:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4566:54:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59793,"nodeType":"ExpressionStatement","src":"4566:54:84"},{"expression":{"arguments":[{"id":59795,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59726,"src":"4649:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59796,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59734,"src":"4656:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59797,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59730,"src":"4669:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59798,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59732,"src":"4678:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":59794,"name":"withdrawCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59950,"src":"4630:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory,uint256,string memory)"}},"id":59799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4630:57:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59800,"nodeType":"ExpressionStatement","src":"4630:57:84"}]},"functionSelector":"1e55b1d6","implemented":true,"kind":"function","modifiers":[],"name":"updateProtection","nameLocation":"3805:16:84","parameters":{"id":59735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59726,"mutability":"mutable","name":"user_","nameLocation":"3839:5:84","nodeType":"VariableDeclaration","scope":59802,"src":"3831:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59725,"name":"address","nodeType":"ElementaryTypeName","src":"3831:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59728,"mutability":"mutable","name":"uniqueId_","nameLocation":"3862:9:84","nodeType":"VariableDeclaration","scope":59802,"src":"3854:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59727,"name":"uint256","nodeType":"ElementaryTypeName","src":"3854:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59730,"mutability":"mutable","name":"loanId_","nameLocation":"3889:7:84","nodeType":"VariableDeclaration","scope":59802,"src":"3881:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59729,"name":"uint256","nodeType":"ElementaryTypeName","src":"3881:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59732,"mutability":"mutable","name":"pointer_","nameLocation":"3920:8:84","nodeType":"VariableDeclaration","scope":59802,"src":"3906:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59731,"name":"string","nodeType":"ElementaryTypeName","src":"3906:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":59734,"mutability":"mutable","name":"lenderName_","nameLocation":"3952:11:84","nodeType":"VariableDeclaration","scope":59802,"src":"3938:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59733,"name":"string","nodeType":"ElementaryTypeName","src":"3938:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3821:148:84"},"returnParameters":{"id":59736,"nodeType":"ParameterList","parameters":[],"src":"3989:0:84"},"scope":60669,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59950,"nodeType":"FunctionDefinition","src":"4700:1611:84","nodes":[],"body":{"id":59949,"nodeType":"Block","src":"4873:1438:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":59816,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59804,"src":"4908:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59813,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"4883:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4892:15:84","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"4883:24:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":59817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4883:35:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59818,"nodeType":"ExpressionStatement","src":"4883:35:84"},{"assignments":[59823],"declarations":[{"constant":false,"id":59823,"mutability":"mutable","name":"supplyDetails","nameLocation":"4956:13:84","nodeType":"VariableDeclaration","scope":59949,"src":"4928:41:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":59822,"nodeType":"UserDefinedTypeName","pathNode":{"id":59821,"name":"ILoan.LoanSupplyData","nameLocations":["4928:5:84","4934:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"4928:20:84"},"referencedDeclaration":56003,"src":"4928:20:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"id":59828,"initialValue":{"arguments":[{"id":59825,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59804,"src":"4986:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59826,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59808,"src":"4997:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59824,"name":"getSupplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60476,"src":"4972:13:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanSupplyData_$56003_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanSupplyData memory)"}},"id":59827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4972:33:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"nodeType":"VariableDeclarationStatement","src":"4928:77:84"},{"assignments":[59830],"declarations":[{"constant":false,"id":59830,"mutability":"mutable","name":"usdAmountOfToken","nameLocation":"5023:16:84","nodeType":"VariableDeclaration","scope":59949,"src":"5015:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59829,"name":"uint256","nodeType":"ElementaryTypeName","src":"5015:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59839,"initialValue":{"arguments":[{"expression":{"id":59832,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59823,"src":"5070:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5084:17:84","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"5070:31:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":59834,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59823,"src":"5103:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5117:7:84","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":56002,"src":"5103:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":59836,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59823,"src":"5126:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5140:8:84","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"5126:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59831,"name":"fetchTokenPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60625,"src":"5054:15:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256) view returns (uint256)"}},"id":59838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5054:95:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5015:134:84"},{"assignments":[59841],"declarations":[{"constant":false,"id":59841,"mutability":"mutable","name":"amount","nameLocation":"5168:6:84","nodeType":"VariableDeclaration","scope":59949,"src":"5160:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59840,"name":"uint256","nodeType":"ElementaryTypeName","src":"5160:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59857,"initialValue":{"arguments":[{"expression":{"id":59844,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59823,"src":"5239:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5253:14:84","memberName":"suppliedAmount","nodeType":"MemberAccess","referencedDeclaration":55996,"src":"5239:28:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59846,"name":"usdAmountOfToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59830,"src":"5281:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":59847,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"5311:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":59848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5322:16:84","memberName":"CHAINLINK_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74236,"src":"5311:27:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":59849,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"5352:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":59850,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5363:10:84","memberName":"USD_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74233,"src":"5352:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":59851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5387:2:84","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"expression":{"id":59852,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59823,"src":"5393:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59853,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5407:8:84","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"5393:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":59854,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5392:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5387:29:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59842,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"5177:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":59843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5188:37:84","memberName":"convertAToBUsingConversionBInTermsOfA","nodeType":"MemberAccess","referencedDeclaration":74278,"src":"5177:48:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":59856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5177:249:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5160:266:84"},{"expression":{"arguments":[{"id":59861,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59841,"src":"5459:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59858,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"5437:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5446:12:84","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"5437:21:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":59862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5437:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59863,"nodeType":"ExpressionStatement","src":"5437:29:84"},{"assignments":[59865],"declarations":[{"constant":false,"id":59865,"mutability":"mutable","name":"data","nameLocation":"5489:4:84","nodeType":"VariableDeclaration","scope":59949,"src":"5476:17:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59864,"name":"bytes","nodeType":"ElementaryTypeName","src":"5476:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59879,"initialValue":{"arguments":[{"arguments":[{"id":59869,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59810,"src":"5538:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":59868,"name":"fetchMarketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60534,"src":"5519:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) view returns (address)"}},"id":59870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5519:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":59871,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59823,"src":"5549:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5563:17:84","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"5549:31:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59873,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59841,"src":"5582:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":59876,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5598:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_ForeclosureBlueprint_$60669","typeString":"contract ForeclosureBlueprint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ForeclosureBlueprint_$60669","typeString":"contract ForeclosureBlueprint"}],"id":59875,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5590:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59874,"name":"address","nodeType":"ElementaryTypeName","src":"5590:7:84","typeDescriptions":{}}},"id":59877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5590:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59866,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5508:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5512:6:84","memberName":"encode","nodeType":"MemberAccess","src":"5508:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5508:96:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5476:128:84"},{"assignments":[59881],"declarations":[{"constant":false,"id":59881,"mutability":"mutable","name":"witData","nameLocation":"5628:7:84","nodeType":"VariableDeclaration","scope":59949,"src":"5615:20:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59880,"name":"bytes","nodeType":"ElementaryTypeName","src":"5615:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59896,"initialValue":{"arguments":[{"hexValue":"77697468647261772862797465732c75696e743235362c6164647265737329","id":59884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:33:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_135390f90b9d4b410a2be88f0673ecafa1c507617f2fc97cc63d457b6d73cbbc","typeString":"literal_string \"withdraw(bytes,uint256,address)\""},"value":"withdraw(bytes,uint256,address)"},{"id":59885,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59865,"src":"5710:4:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":59886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5716:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"arguments":[{"id":59890,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59804,"src":"5746:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59891,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59806,"src":"5757:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59892,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59808,"src":"5770:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59889,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60577,"src":"5727:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":59893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5727:51:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5719:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59887,"name":"address","nodeType":"ElementaryTypeName","src":"5719:7:84","typeDescriptions":{}}},"id":59894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5719:60:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_135390f90b9d4b410a2be88f0673ecafa1c507617f2fc97cc63d457b6d73cbbc","typeString":"literal_string \"withdraw(bytes,uint256,address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5638:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5642:19:84","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5638:23:84","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":59895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5638:151:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5615:174:84"},{"assignments":[59898],"declarations":[{"constant":false,"id":59898,"mutability":"mutable","name":"success","nameLocation":"5804:7:84","nodeType":"VariableDeclaration","scope":59949,"src":"5799:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59897,"name":"bool","nodeType":"ElementaryTypeName","src":"5799:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":59907,"initialValue":{"arguments":[{"hexValue":"5769746864726177416374696f6e","id":59900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5839:16:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_826ecd6197a792cbe0e4d0b23569907711a13d6a01d0d348ba2a83813fcf19c3","typeString":"literal_string \"WithdrawAction\""},"value":"WithdrawAction"},{"hexValue":"30","id":59901,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5857:7:84","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":59902,"name":"witData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59881,"src":"5866:7:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":59903,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"5875:4:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":59904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5880:9:84","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"5875:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":59905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5890:4:84","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"5875:19:84","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_826ecd6197a792cbe0e4d0b23569907711a13d6a01d0d348ba2a83813fcf19c3","typeString":"literal_string \"WithdrawAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":59899,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"5814:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":59906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5814:81:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5799:96:84"},{"expression":{"arguments":[{"id":59909,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59898,"src":"5913:7:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"457865637574696f6e206661696c6564","id":59910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5922:18:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""},"value":"Execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""}],"id":59908,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5905:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5905:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59912,"nodeType":"ExpressionStatement","src":"5905:36:84"},{"assignments":[59914],"declarations":[{"constant":false,"id":59914,"mutability":"mutable","name":"FTMkey","nameLocation":"5959:6:84","nodeType":"VariableDeclaration","scope":59949,"src":"5951:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59913,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5951:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59923,"initialValue":{"arguments":[{"id":59916,"name":"USER_ID_PROTECTION_FINANCIAL_TERMS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71243,"src":"5978:34:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":59919,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59804,"src":"6025:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59920,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59808,"src":"6036:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59917,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6014:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6018:6:84","memberName":"encode","nodeType":"MemberAccess","src":"6014:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6014:30:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59915,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"5968:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5968:77:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5951:94:84"},{"assignments":[59925],"declarations":[{"constant":false,"id":59925,"mutability":"mutable","name":"protectionFinancialTermsData","nameLocation":"6068:28:84","nodeType":"VariableDeclaration","scope":59949,"src":"6055:41:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59924,"name":"bytes","nodeType":"ElementaryTypeName","src":"6055:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59930,"initialValue":{"arguments":[{"id":59928,"name":"FTMkey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59914,"src":"6124:6:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59926,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"6099:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6115:8:84","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"6099:24:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":59929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6099:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6055:76:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":59934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":59931,"name":"protectionFinancialTermsData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59925,"src":"6145:28:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":59932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6174:6:84","memberName":"length","nodeType":"MemberAccess","src":"6145:35:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":59933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6184:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6145:40:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":59943,"nodeType":"IfStatement","src":"6141:122:84","trueBody":{"id":59942,"nodeType":"Block","src":"6187:76:84","statements":[{"expression":{"arguments":[{"id":59936,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59804,"src":"6210:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59937,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59810,"src":"6221:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59938,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59806,"src":"6231:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59939,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59808,"src":"6244:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59935,"name":"retrieve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60136,"src":"6201:8:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,string memory,string memory,uint256)"}},"id":59940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6201:51:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59941,"nodeType":"ExpressionStatement","src":"6201:51:84"}]}},{"expression":{"arguments":[{"id":59945,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59804,"src":"6285:9:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59946,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59808,"src":"6296:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59944,"name":"checkIsEqual","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60078,"src":"6272:12:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":59947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6272:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59948,"nodeType":"ExpressionStatement","src":"6272:32:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdrawCollateral","nameLocation":"4709:18:84","parameters":{"id":59811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59804,"mutability":"mutable","name":"onBehalf_","nameLocation":"4745:9:84","nodeType":"VariableDeclaration","scope":59950,"src":"4737:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59803,"name":"address","nodeType":"ElementaryTypeName","src":"4737:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59806,"mutability":"mutable","name":"lenderName_","nameLocation":"4778:11:84","nodeType":"VariableDeclaration","scope":59950,"src":"4764:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59805,"name":"string","nodeType":"ElementaryTypeName","src":"4764:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":59808,"mutability":"mutable","name":"loanId_","nameLocation":"4807:7:84","nodeType":"VariableDeclaration","scope":59950,"src":"4799:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59807,"name":"uint256","nodeType":"ElementaryTypeName","src":"4799:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59810,"mutability":"mutable","name":"pointer_","nameLocation":"4838:8:84","nodeType":"VariableDeclaration","scope":59950,"src":"4824:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59809,"name":"string","nodeType":"ElementaryTypeName","src":"4824:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4727:125:84"},"returnParameters":{"id":59812,"nodeType":"ParameterList","parameters":[],"src":"4873:0:84"},"scope":60669,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":60078,"nodeType":"FunctionDefinition","src":"6317:1755:84","nodes":[],"body":{"id":60077,"nodeType":"Block","src":"6379:1693:84","nodes":[],"statements":[{"assignments":[59961],"declarations":[{"constant":false,"id":59961,"mutability":"mutable","name":"supplyDetails","nameLocation":"6417:13:84","nodeType":"VariableDeclaration","scope":60077,"src":"6389:41:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":59960,"nodeType":"UserDefinedTypeName","pathNode":{"id":59959,"name":"ILoan.LoanSupplyData","nameLocations":["6389:5:84","6395:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"6389:20:84"},"referencedDeclaration":56003,"src":"6389:20:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"id":59966,"initialValue":{"arguments":[{"id":59963,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59952,"src":"6447:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59964,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59954,"src":"6454:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59962,"name":"getSupplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60476,"src":"6433:13:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanSupplyData_$56003_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanSupplyData memory)"}},"id":59965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6433:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"nodeType":"VariableDeclarationStatement","src":"6389:73:84"},{"assignments":[59971],"declarations":[{"constant":false,"id":59971,"mutability":"mutable","name":"protectionFtDetails","nameLocation":"6516:19:84","nodeType":"VariableDeclaration","scope":60077,"src":"6472:63:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"},"typeName":{"id":59970,"nodeType":"UserDefinedTypeName","pathNode":{"id":59969,"name":"IProtection.ProtectionFinancialTerms","nameLocations":["6472:11:84","6484:24:84"],"nodeType":"IdentifierPath","referencedDeclaration":57272,"src":"6472:36:84"},"referencedDeclaration":57272,"src":"6472:36:84","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_storage_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"}},"visibility":"internal"}],"id":59976,"initialValue":{"arguments":[{"id":59973,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59952,"src":"6566:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59974,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59954,"src":"6573:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59972,"name":"getProtectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60513,"src":"6538:27:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_ProtectionFinancialTerms_$57272_memory_ptr_$","typeString":"function (address,uint256) view returns (struct IProtection.ProtectionFinancialTerms memory)"}},"id":59975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6538:43:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"nodeType":"VariableDeclarationStatement","src":"6472:109:84"},{"assignments":[59978],"declarations":[{"constant":false,"id":59978,"mutability":"mutable","name":"usdAmountOfToken","nameLocation":"6599:16:84","nodeType":"VariableDeclaration","scope":60077,"src":"6591:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59977,"name":"uint256","nodeType":"ElementaryTypeName","src":"6591:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59979,"nodeType":"VariableDeclarationStatement","src":"6591:24:84"},{"expression":{"id":59989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59980,"name":"usdAmountOfToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59978,"src":"6625:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":59982,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59961,"src":"6672:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6686:17:84","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"6672:31:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":59984,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59961,"src":"6705:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6719:7:84","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":56002,"src":"6705:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":59986,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59961,"src":"6728:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6742:8:84","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"6728:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59981,"name":"fetchTokenPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60625,"src":"6656:15:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256) view returns (uint256)"}},"id":59988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6656:95:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6625:126:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59990,"nodeType":"ExpressionStatement","src":"6625:126:84"},{"assignments":[59992],"declarations":[{"constant":false,"id":59992,"mutability":"mutable","name":"numberOfTokensToAmount","nameLocation":"6770:22:84","nodeType":"VariableDeclaration","scope":60077,"src":"6762:30:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59991,"name":"uint256","nodeType":"ElementaryTypeName","src":"6762:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":59999,"initialValue":{"arguments":[{"expression":{"id":59995,"name":"protectionFtDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59971,"src":"6836:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":59996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6856:18:84","memberName":"totalCreditOffered","nodeType":"MemberAccess","referencedDeclaration":57257,"src":"6836:38:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59997,"name":"usdAmountOfToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59978,"src":"6876:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59993,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"6807:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":59994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6818:17:84","memberName":"convertUSDtoToken","nodeType":"MemberAccess","referencedDeclaration":74314,"src":"6807:28:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":59998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6807:86:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6762:131:84"},{"assignments":[60001],"declarations":[{"constant":false,"id":60001,"mutability":"mutable","name":"revenue","nameLocation":"6912:7:84","nodeType":"VariableDeclaration","scope":60077,"src":"6904:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60000,"name":"uint256","nodeType":"ElementaryTypeName","src":"6904:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60003,"initialValue":{"hexValue":"30","id":60002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6922:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6904:19:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60004,"name":"numberOfTokensToAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59992,"src":"6938:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":60005,"name":"protectionFtDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59971,"src":"6963:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":60006,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6983:19:84","memberName":"totalNumberOfTokens","nodeType":"MemberAccess","referencedDeclaration":57259,"src":"6963:39:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6938:64:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":60068,"nodeType":"Block","src":"7673:318:84","statements":[{"expression":{"id":60066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60050,"name":"revenue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60001,"src":"7687:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":60053,"name":"protectionFtDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59971,"src":"7763:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":60054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7783:18:84","memberName":"totalCreditOffered","nodeType":"MemberAccess","referencedDeclaration":57257,"src":"7763:38:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60055,"name":"usdAmountOfToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59978,"src":"7819:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":60056,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7853:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7864:16:84","memberName":"CHAINLINK_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74236,"src":"7853:27:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":60058,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7898:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60059,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7909:10:84","memberName":"USD_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74233,"src":"7898:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":60060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7937:2:84","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"expression":{"id":60061,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59961,"src":"7943:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":60062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7957:8:84","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"7943:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":60063,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7942:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7937:29:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60051,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7697:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7708:37:84","memberName":"convertAToBUsingConversionAInTermsOfB","nodeType":"MemberAccess","referencedDeclaration":74260,"src":"7697:48:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":60065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:283:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7687:293:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60067,"nodeType":"ExpressionStatement","src":"7687:293:84"}]},"id":60069,"nodeType":"IfStatement","src":"6934:1057:84","trueBody":{"id":60049,"nodeType":"Block","src":"7004:663:84","statements":[{"assignments":[60009],"declarations":[{"constant":false,"id":60009,"mutability":"mutable","name":"extraTokens","nameLocation":"7026:11:84","nodeType":"VariableDeclaration","scope":60049,"src":"7018:19:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60008,"name":"uint256","nodeType":"ElementaryTypeName","src":"7018:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60014,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60010,"name":"numberOfTokensToAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59992,"src":"7040:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":60011,"name":"protectionFtDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59971,"src":"7065:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":60012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7085:19:84","memberName":"totalNumberOfTokens","nodeType":"MemberAccess","referencedDeclaration":57259,"src":"7065:39:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7040:64:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7018:86:84"},{"assignments":[60016],"declarations":[{"constant":false,"id":60016,"mutability":"mutable","name":"extraTokensToUSD","nameLocation":"7126:16:84","nodeType":"VariableDeclaration","scope":60049,"src":"7118:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60015,"name":"uint256","nodeType":"ElementaryTypeName","src":"7118:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60028,"initialValue":{"arguments":[{"id":60019,"name":"extraTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60009,"src":"7211:11:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60020,"name":"usdAmountOfToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59978,"src":"7224:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":60021,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7242:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7253:16:84","memberName":"CHAINLINK_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74236,"src":"7242:27:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":60023,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7271:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60024,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7282:10:84","memberName":"USD_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74233,"src":"7271:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":60025,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7294:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7305:10:84","memberName":"USD_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74233,"src":"7294:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60017,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7145:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7156:37:84","memberName":"convertAToBUsingConversionAInTermsOfB","nodeType":"MemberAccess","referencedDeclaration":74260,"src":"7145:48:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":60027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7145:184:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7118:211:84"},{"expression":{"id":60047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60029,"name":"revenue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60001,"src":"7344:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":60032,"name":"protectionFtDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59971,"src":"7420:19:84","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":60033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7440:18:84","memberName":"totalCreditOffered","nodeType":"MemberAccess","referencedDeclaration":57257,"src":"7420:38:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":60034,"name":"extraTokensToUSD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60016,"src":"7461:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7420:57:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60036,"name":"usdAmountOfToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59978,"src":"7495:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":60037,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7529:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7540:16:84","memberName":"CHAINLINK_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74236,"src":"7529:27:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":60039,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7574:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7585:10:84","memberName":"USD_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74233,"src":"7574:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":60041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7613:2:84","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"expression":{"id":60042,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59961,"src":"7619:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":60043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7633:8:84","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"7619:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":60044,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7618:24:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7613:29:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60030,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7354:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7365:37:84","memberName":"convertAToBUsingConversionAInTermsOfB","nodeType":"MemberAccess","referencedDeclaration":74260,"src":"7354:48:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":60046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7354:302:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7344:312:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60048,"nodeType":"ExpressionStatement","src":"7344:312:84"}]}},{"expression":{"arguments":[{"id":60071,"name":"revenue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60001,"src":"8017:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60072,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59952,"src":"8026:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":60073,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59961,"src":"8033:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":60074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8047:17:84","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"8033:31:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60070,"name":"partialSplitter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60318,"src":"8001:15:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address)"}},"id":60075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8001:64:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60076,"nodeType":"ExpressionStatement","src":"8001:64:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkIsEqual","nameLocation":"6326:12:84","parameters":{"id":59955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59952,"mutability":"mutable","name":"user_","nameLocation":"6347:5:84","nodeType":"VariableDeclaration","scope":60078,"src":"6339:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59951,"name":"address","nodeType":"ElementaryTypeName","src":"6339:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59954,"mutability":"mutable","name":"loanId_","nameLocation":"6362:7:84","nodeType":"VariableDeclaration","scope":60078,"src":"6354:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59953,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6338:32:84"},"returnParameters":{"id":59956,"nodeType":"ParameterList","parameters":[],"src":"6379:0:84"},"scope":60669,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":60136,"nodeType":"FunctionDefinition","src":"8078:509:84","nodes":[],"body":{"id":60135,"nodeType":"Block","src":"8187:400:84","nodes":[],"statements":[{"assignments":[60090,60092],"declarations":[{"constant":false,"id":60090,"mutability":"mutable","name":"tCol","nameLocation":"8206:4:84","nodeType":"VariableDeclaration","scope":60135,"src":"8198:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60089,"name":"uint256","nodeType":"ElementaryTypeName","src":"8198:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60092,"mutability":"mutable","name":"tDebt","nameLocation":"8220:5:84","nodeType":"VariableDeclaration","scope":60135,"src":"8212:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60091,"name":"uint256","nodeType":"ElementaryTypeName","src":"8212:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60099,"initialValue":{"arguments":[{"id":60094,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60080,"src":"8256:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60095,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60086,"src":"8263:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60096,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60082,"src":"8272:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60097,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60084,"src":"8282:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":60093,"name":"calculateCollateralAndDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60249,"src":"8229:26:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address,uint256,string memory,string memory) view returns (uint256,uint256)"}},"id":60098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8229:65:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8197:97:84"},{"expression":{"arguments":[{"id":60103,"name":"tCol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60090,"src":"8326:4:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60100,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"8304:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":60102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8313:12:84","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"8304:21:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":60104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8304:27:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60105,"nodeType":"ExpressionStatement","src":"8304:27:84"},{"expression":{"arguments":[{"id":60109,"name":"tDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60092,"src":"8363:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60106,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"8341:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":60108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8350:12:84","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"8341:21:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":60110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8341:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60111,"nodeType":"ExpressionStatement","src":"8341:28:84"},{"assignments":[60113],"declarations":[{"constant":false,"id":60113,"mutability":"mutable","name":"retrieveAmount","nameLocation":"8387:14:84","nodeType":"VariableDeclaration","scope":60135,"src":"8379:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60112,"name":"uint256","nodeType":"ElementaryTypeName","src":"8379:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60117,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60114,"name":"tCol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60090,"src":"8404:4:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":60115,"name":"tDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60092,"src":"8411:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8404:12:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8379:37:84"},{"assignments":[60122],"declarations":[{"constant":false,"id":60122,"mutability":"mutable","name":"supplyDetails","nameLocation":"8454:13:84","nodeType":"VariableDeclaration","scope":60135,"src":"8426:41:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":60121,"nodeType":"UserDefinedTypeName","pathNode":{"id":60120,"name":"ILoan.LoanSupplyData","nameLocations":["8426:5:84","8432:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"8426:20:84"},"referencedDeclaration":56003,"src":"8426:20:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"id":60127,"initialValue":{"arguments":[{"id":60124,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60080,"src":"8484:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60125,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60086,"src":"8491:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60123,"name":"getSupplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60476,"src":"8470:13:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanSupplyData_$56003_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanSupplyData memory)"}},"id":60126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8470:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"nodeType":"VariableDeclarationStatement","src":"8426:73:84"},{"expression":{"arguments":[{"id":60129,"name":"retrieveAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60113,"src":"8525:14:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60130,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60080,"src":"8541:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":60131,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60122,"src":"8548:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":60132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8562:17:84","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"8548:31:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":60128,"name":"partialSplitter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60318,"src":"8509:15:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address)"}},"id":60133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8509:71:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60134,"nodeType":"ExpressionStatement","src":"8509:71:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"retrieve","nameLocation":"8087:8:84","parameters":{"id":60087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60080,"mutability":"mutable","name":"user_","nameLocation":"8104:5:84","nodeType":"VariableDeclaration","scope":60136,"src":"8096:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60079,"name":"address","nodeType":"ElementaryTypeName","src":"8096:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60082,"mutability":"mutable","name":"pointer_","nameLocation":"8125:8:84","nodeType":"VariableDeclaration","scope":60136,"src":"8111:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60081,"name":"string","nodeType":"ElementaryTypeName","src":"8111:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":60084,"mutability":"mutable","name":"lenderName_","nameLocation":"8149:11:84","nodeType":"VariableDeclaration","scope":60136,"src":"8135:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60083,"name":"string","nodeType":"ElementaryTypeName","src":"8135:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":60086,"mutability":"mutable","name":"loanId_","nameLocation":"8170:7:84","nodeType":"VariableDeclaration","scope":60136,"src":"8162:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60085,"name":"uint256","nodeType":"ElementaryTypeName","src":"8162:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8095:83:84"},"returnParameters":{"id":60088,"nodeType":"ParameterList","parameters":[],"src":"8187:0:84"},"scope":60669,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":60249,"nodeType":"FunctionDefinition","src":"8593:1384:84","nodes":[],"body":{"id":60248,"nodeType":"Block","src":"8829:1148:84","nodes":[],"statements":[{"assignments":[60155],"declarations":[{"constant":false,"id":60155,"mutability":"mutable","name":"borrowDetails","nameLocation":"8867:13:84","nodeType":"VariableDeclaration","scope":60248,"src":"8839:41:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData"},"typeName":{"id":60154,"nodeType":"UserDefinedTypeName","pathNode":{"id":60153,"name":"ILoan.LoanBorrowData","nameLocations":["8839:5:84","8845:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":56034,"src":"8839:20:84"},"referencedDeclaration":56034,"src":"8839:20:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_storage_ptr","typeString":"struct ILoan.LoanBorrowData"}},"visibility":"internal"}],"id":60160,"initialValue":{"arguments":[{"id":60157,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60138,"src":"8897:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60158,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60140,"src":"8904:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60156,"name":"getBorrowData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60439,"src":"8883:13:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanBorrowData_$56034_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanBorrowData memory)"}},"id":60159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8883:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"nodeType":"VariableDeclarationStatement","src":"8839:73:84"},{"assignments":[60162],"declarations":[{"constant":false,"id":60162,"mutability":"mutable","name":"debt","nameLocation":"8930:4:84","nodeType":"VariableDeclaration","scope":60248,"src":"8922:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60161,"name":"uint256","nodeType":"ElementaryTypeName","src":"8922:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60173,"initialValue":{"arguments":[{"id":60164,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60138,"src":"8957:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60165,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60142,"src":"8964:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60166,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60144,"src":"8974:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":60167,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60155,"src":"8987:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":60168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9001:16:84","memberName":"debtTokenAddress","nodeType":"MemberAccess","referencedDeclaration":56027,"src":"8987:30:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":60169,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60155,"src":"9019:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":60170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9033:8:84","memberName":"rateMode","nodeType":"MemberAccess","referencedDeclaration":56031,"src":"9019:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60171,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60140,"src":"9043:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60163,"name":"getDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60402,"src":"8949:7:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,string memory,string memory,address,uint256,uint256) view returns (uint256)"}},"id":60172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8949:102:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8922:129:84"},{"assignments":[60175],"declarations":[{"constant":false,"id":60175,"mutability":"mutable","name":"usdAmountOfCollateralToken","nameLocation":"9069:26:84","nodeType":"VariableDeclaration","scope":60248,"src":"9061:34:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60174,"name":"uint256","nodeType":"ElementaryTypeName","src":"9061:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60176,"nodeType":"VariableDeclarationStatement","src":"9061:34:84"},{"assignments":[60178],"declarations":[{"constant":false,"id":60178,"mutability":"mutable","name":"usdAmountOfDebtToken","nameLocation":"9113:20:84","nodeType":"VariableDeclaration","scope":60248,"src":"9105:28:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60177,"name":"uint256","nodeType":"ElementaryTypeName","src":"9105:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60179,"nodeType":"VariableDeclarationStatement","src":"9105:28:84"},{"assignments":[60181],"declarations":[{"constant":false,"id":60181,"mutability":"mutable","name":"usdAmountOfToken","nameLocation":"9151:16:84","nodeType":"VariableDeclaration","scope":60248,"src":"9143:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60180,"name":"uint256","nodeType":"ElementaryTypeName","src":"9143:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60182,"nodeType":"VariableDeclarationStatement","src":"9143:24:84"},{"assignments":[60187],"declarations":[{"constant":false,"id":60187,"mutability":"mutable","name":"supplyDetails","nameLocation":"9205:13:84","nodeType":"VariableDeclaration","scope":60248,"src":"9177:41:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":60186,"nodeType":"UserDefinedTypeName","pathNode":{"id":60185,"name":"ILoan.LoanSupplyData","nameLocations":["9177:5:84","9183:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"9177:20:84"},"referencedDeclaration":56003,"src":"9177:20:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"id":60192,"initialValue":{"arguments":[{"id":60189,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60138,"src":"9235:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60190,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60140,"src":"9242:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60188,"name":"getSupplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60476,"src":"9221:13:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanSupplyData_$56003_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanSupplyData memory)"}},"id":60191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9221:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"nodeType":"VariableDeclarationStatement","src":"9177:73:84"},{"expression":{"id":60202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60193,"name":"usdAmountOfToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60181,"src":"9260:16:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":60195,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60187,"src":"9307:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":60196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9321:17:84","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"9307:31:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":60197,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60187,"src":"9340:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":60198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9354:7:84","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":56002,"src":"9340:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":60199,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60187,"src":"9363:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":60200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9377:8:84","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"9363:22:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60194,"name":"fetchTokenPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60625,"src":"9291:15:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256) view returns (uint256)"}},"id":60201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9291:95:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9260:126:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60203,"nodeType":"ExpressionStatement","src":"9260:126:84"},{"expression":{"id":60213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60204,"name":"usdAmountOfDebtToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60178,"src":"9396:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":60206,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60155,"src":"9447:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":60207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9461:16:84","memberName":"debtTokenAddress","nodeType":"MemberAccess","referencedDeclaration":56027,"src":"9447:30:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":60208,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60187,"src":"9479:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":60209,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9493:7:84","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":56002,"src":"9479:21:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":60210,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60155,"src":"9502:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":60211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9516:8:84","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56033,"src":"9502:22:84","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":60205,"name":"fetchTokenPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60625,"src":"9431:15:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256) view returns (uint256)"}},"id":60212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9431:94:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9396:129:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60214,"nodeType":"ExpressionStatement","src":"9396:129:84"},{"assignments":[60216],"declarations":[{"constant":false,"id":60216,"mutability":"mutable","name":"numberOfTokensToAmountCollateral","nameLocation":"9544:32:84","nodeType":"VariableDeclaration","scope":60248,"src":"9536:40:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60215,"name":"uint256","nodeType":"ElementaryTypeName","src":"9536:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60223,"initialValue":{"arguments":[{"expression":{"id":60219,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60187,"src":"9620:13:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":60220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9634:14:84","memberName":"suppliedAmount","nodeType":"MemberAccess","referencedDeclaration":55996,"src":"9620:28:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60221,"name":"usdAmountOfCollateralToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60175,"src":"9650:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60217,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"9591:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9602:17:84","memberName":"convertUSDtoToken","nodeType":"MemberAccess","referencedDeclaration":74314,"src":"9591:28:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":60222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9591:86:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9536:141:84"},{"expression":{"id":60230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60224,"name":"tCol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60147,"src":"9687:4:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60227,"name":"numberOfTokensToAmountCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60216,"src":"9716:32:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60228,"name":"usdAmountOfCollateralToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60175,"src":"9750:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60225,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"9694:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9705:10:84","memberName":"tokenToUSD","nodeType":"MemberAccess","referencedDeclaration":74351,"src":"9694:21:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":60229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9694:83:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9687:90:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60231,"nodeType":"ExpressionStatement","src":"9687:90:84"},{"assignments":[60233],"declarations":[{"constant":false,"id":60233,"mutability":"mutable","name":"numberOfTokensToAmountDebt","nameLocation":"9796:26:84","nodeType":"VariableDeclaration","scope":60248,"src":"9788:34:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60232,"name":"uint256","nodeType":"ElementaryTypeName","src":"9788:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60239,"initialValue":{"arguments":[{"id":60236,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60162,"src":"9854:4:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60237,"name":"usdAmountOfDebtToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60178,"src":"9860:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60234,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"9825:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9836:17:84","memberName":"convertUSDtoToken","nodeType":"MemberAccess","referencedDeclaration":74314,"src":"9825:28:84","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":60238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9825:56:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9788:93:84"},{"expression":{"id":60246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60240,"name":"tDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60149,"src":"9891:5:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60243,"name":"numberOfTokensToAmountDebt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60233,"src":"9921:26:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60244,"name":"usdAmountOfDebtToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60178,"src":"9949:20:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60241,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"9899:10:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":60242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9910:10:84","memberName":"tokenToUSD","nodeType":"MemberAccess","referencedDeclaration":74351,"src":"9899:21:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":60245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9899:71:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9891:79:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60247,"nodeType":"ExpressionStatement","src":"9891:79:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"calculateCollateralAndDebt","nameLocation":"8602:26:84","parameters":{"id":60145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60138,"mutability":"mutable","name":"user_","nameLocation":"8646:5:84","nodeType":"VariableDeclaration","scope":60249,"src":"8638:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60137,"name":"address","nodeType":"ElementaryTypeName","src":"8638:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60140,"mutability":"mutable","name":"loanId_","nameLocation":"8669:7:84","nodeType":"VariableDeclaration","scope":60249,"src":"8661:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60139,"name":"uint256","nodeType":"ElementaryTypeName","src":"8661:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60142,"mutability":"mutable","name":"pointer_","nameLocation":"8700:8:84","nodeType":"VariableDeclaration","scope":60249,"src":"8686:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60141,"name":"string","nodeType":"ElementaryTypeName","src":"8686:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":60144,"mutability":"mutable","name":"lenderName_","nameLocation":"8732:11:84","nodeType":"VariableDeclaration","scope":60249,"src":"8718:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60143,"name":"string","nodeType":"ElementaryTypeName","src":"8718:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8628:121:84"},"returnParameters":{"id":60150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60147,"mutability":"mutable","name":"tCol","nameLocation":"8804:4:84","nodeType":"VariableDeclaration","scope":60249,"src":"8796:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60146,"name":"uint256","nodeType":"ElementaryTypeName","src":"8796:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60149,"mutability":"mutable","name":"tDebt","nameLocation":"8818:5:84","nodeType":"VariableDeclaration","scope":60249,"src":"8810:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60148,"name":"uint256","nodeType":"ElementaryTypeName","src":"8810:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8795:29:84"},"scope":60669,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":60318,"nodeType":"FunctionDefinition","src":"9983:553:84","nodes":[],"body":{"id":60317,"nodeType":"Block","src":"10065:471:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":60261,"name":"revenue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60251,"src":"10097:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60258,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"10075:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":60260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10084:12:84","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"10075:21:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":60262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10075:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60263,"nodeType":"ExpressionStatement","src":"10075:31:84"},{"assignments":[60265],"declarations":[{"constant":false,"id":60265,"mutability":"mutable","name":"streamVaultKey","nameLocation":"10124:14:84","nodeType":"VariableDeclaration","scope":60317,"src":"10116:22:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10116:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60273,"initialValue":{"arguments":[{"id":60267,"name":"ADDRESS_NAME_STREAMVAULT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71288,"src":"10151:24:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":60270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10188:3:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":60268,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10177:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10181:6:84","memberName":"encode","nodeType":"MemberAccess","src":"10177:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10177:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60266,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"10141:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10141:52:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10116:77:84"},{"assignments":[60275],"declarations":[{"constant":false,"id":60275,"mutability":"mutable","name":"streamVaultAddress","nameLocation":"10211:18:84","nodeType":"VariableDeclaration","scope":60317,"src":"10203:26:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60274,"name":"address","nodeType":"ElementaryTypeName","src":"10203:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":60280,"initialValue":{"arguments":[{"id":60278,"name":"streamVaultKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60265,"src":"10259:14:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60276,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"10232:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10248:10:84","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"10232:26:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":60279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10232:42:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10203:71:84"},{"assignments":[60283],"declarations":[{"constant":false,"id":60283,"mutability":"mutable","name":"tokenContract","nameLocation":"10292:13:84","nodeType":"VariableDeclaration","scope":60317,"src":"10285:20:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"},"typeName":{"id":60282,"nodeType":"UserDefinedTypeName","pathNode":{"id":60281,"name":"IERC20","nameLocations":["10285:6:84"],"nodeType":"IdentifierPath","referencedDeclaration":45751,"src":"10285:6:84"},"referencedDeclaration":45751,"src":"10285:6:84","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"visibility":"internal"}],"id":60287,"initialValue":{"arguments":[{"id":60285,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60255,"src":"10315:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60284,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45751,"src":"10308:6:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$45751_$","typeString":"type(contract IERC20)"}},"id":60286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10308:14:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"10285:37:84"},{"expression":{"arguments":[{"id":60291,"name":"streamVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60275,"src":"10356:18:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60292,"name":"revenue_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60251,"src":"10376:8:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60288,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60283,"src":"10333:13:84","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"id":60290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10347:8:84","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":45718,"src":"10333:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":60293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10333:52:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60294,"nodeType":"ExpressionStatement","src":"10333:52:84"},{"assignments":[60296],"declarations":[{"constant":false,"id":60296,"mutability":"mutable","name":"bal","nameLocation":"10404:3:84","nodeType":"VariableDeclaration","scope":60317,"src":"10396:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60295,"name":"uint256","nodeType":"ElementaryTypeName","src":"10396:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":60304,"initialValue":{"arguments":[{"arguments":[{"id":60301,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10442:4:84","typeDescriptions":{"typeIdentifier":"t_contract$_ForeclosureBlueprint_$60669","typeString":"contract ForeclosureBlueprint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ForeclosureBlueprint_$60669","typeString":"contract ForeclosureBlueprint"}],"id":60300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10434:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60299,"name":"address","nodeType":"ElementaryTypeName","src":"10434:7:84","typeDescriptions":{}}},"id":60302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10434:13:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":60297,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60283,"src":"10410:13:84","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"id":60298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10424:9:84","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":45708,"src":"10410:23:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":60303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10410:38:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10396:52:84"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60305,"name":"bal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60296,"src":"10462:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":60306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10468:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10462:7:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60316,"nodeType":"IfStatement","src":"10458:72:84","trueBody":{"id":60315,"nodeType":"Block","src":"10471:59:84","statements":[{"expression":{"arguments":[{"id":60311,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60253,"src":"10508:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60312,"name":"bal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60296,"src":"10515:3:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60308,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60283,"src":"10485:13:84","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"id":60310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10499:8:84","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":45718,"src":"10485:22:84","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":60313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10485:34:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60314,"nodeType":"ExpressionStatement","src":"10485:34:84"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"partialSplitter","nameLocation":"9992:15:84","parameters":{"id":60256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60251,"mutability":"mutable","name":"revenue_","nameLocation":"10016:8:84","nodeType":"VariableDeclaration","scope":60318,"src":"10008:16:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60250,"name":"uint256","nodeType":"ElementaryTypeName","src":"10008:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60253,"mutability":"mutable","name":"user_","nameLocation":"10034:5:84","nodeType":"VariableDeclaration","scope":60318,"src":"10026:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60252,"name":"address","nodeType":"ElementaryTypeName","src":"10026:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60255,"mutability":"mutable","name":"token_","nameLocation":"10049:6:84","nodeType":"VariableDeclaration","scope":60318,"src":"10041:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60254,"name":"address","nodeType":"ElementaryTypeName","src":"10041:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10007:49:84"},"returnParameters":{"id":60257,"nodeType":"ParameterList","parameters":[],"src":"10065:0:84"},"scope":60669,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":60402,"nodeType":"FunctionDefinition","src":"10542:869:84","nodes":[],"body":{"id":60401,"nodeType":"Block","src":"10795:616:84","nodes":[],"statements":[{"expression":{"arguments":[{"id":60338,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60320,"src":"10830:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":60335,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"10805:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":60337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10814:15:84","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"10805:24:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":60339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10805:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60340,"nodeType":"ExpressionStatement","src":"10805:31:84"},{"assignments":[60342],"declarations":[{"constant":false,"id":60342,"mutability":"mutable","name":"marketAddress","nameLocation":"10854:13:84","nodeType":"VariableDeclaration","scope":60401,"src":"10846:21:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60341,"name":"address","nodeType":"ElementaryTypeName","src":"10846:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":60346,"initialValue":{"arguments":[{"id":60344,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60322,"src":"10889:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":60343,"name":"fetchMarketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60534,"src":"10870:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) view returns (address)"}},"id":60345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10870:28:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10846:52:84"},{"expression":{"arguments":[{"id":60350,"name":"marketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60342,"src":"10933:13:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":60347,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"10908:8:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":60349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10917:15:84","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"10908:24:84","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":60351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10908:39:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60352,"nodeType":"ExpressionStatement","src":"10908:39:84"},{"assignments":[60354],"declarations":[{"constant":false,"id":60354,"mutability":"mutable","name":"debtData","nameLocation":"10971:8:84","nodeType":"VariableDeclaration","scope":60401,"src":"10958:21:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60353,"name":"bytes","nodeType":"ElementaryTypeName","src":"10958:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60370,"initialValue":{"arguments":[{"hexValue":"676574557365724465627428627974657329","id":60357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11019:20:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_4894f742d2ca8cd5667a56caf1c90e513ca377212128de92da9ebda5837e9216","typeString":"literal_string \"getUserDebt(bytes)\""},"value":"getUserDebt(bytes)"},{"arguments":[{"id":60360,"name":"marketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60342,"src":"11064:13:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60361,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60326,"src":"11079:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60362,"name":"ratemode_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60328,"src":"11087:9:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":60364,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60320,"src":"11117:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60365,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60324,"src":"11124:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60366,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60330,"src":"11137:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60363,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60577,"src":"11098:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":60367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11098:47:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":60358,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11053:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11057:6:84","memberName":"encode","nodeType":"MemberAccess","src":"11053:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11053:93:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4894f742d2ca8cd5667a56caf1c90e513ca377212128de92da9ebda5837e9216","typeString":"literal_string \"getUserDebt(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":60355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10982:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10986:19:84","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10982:23:84","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":60369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10982:174:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10958:198:84"},{"assignments":[60372,60374],"declarations":[{"constant":false,"id":60372,"mutability":"mutable","name":"success","nameLocation":"11173:7:84","nodeType":"VariableDeclaration","scope":60401,"src":"11168:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":60371,"name":"bool","nodeType":"ElementaryTypeName","src":"11168:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":60374,"mutability":"mutable","name":"result","nameLocation":"11195:6:84","nodeType":"VariableDeclaration","scope":60401,"src":"11182:19:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60373,"name":"bytes","nodeType":"ElementaryTypeName","src":"11182:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60383,"initialValue":{"arguments":[{"id":60381,"name":"debtData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60354,"src":"11264:8:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":60376,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60320,"src":"11224:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60377,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60324,"src":"11231:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60378,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60330,"src":"11244:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60375,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60577,"src":"11205:18:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":60379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:47:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11253:10:84","memberName":"staticcall","nodeType":"MemberAccess","src":"11205:58:84","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":60382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:68:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"11167:106:84"},{"expression":{"arguments":[{"id":60385,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60372,"src":"11291:7:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a2043616c6c20746f2075736572426c75657072696e74206661696c6564","id":60386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11300:35:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_e97eb64a3255915c3c805b541688316a0e246d603ec7150f92036f6f6c68933e","typeString":"literal_string \"ERR: Call to userBlueprint failed\""},"value":"ERR: Call to userBlueprint failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e97eb64a3255915c3c805b541688316a0e246d603ec7150f92036f6f6c68933e","typeString":"literal_string \"ERR: Call to userBlueprint failed\""}],"id":60384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11283:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11283:53:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60388,"nodeType":"ExpressionStatement","src":"11283:53:84"},{"expression":{"id":60397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60389,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60333,"src":"11347:4:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60392,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60374,"src":"11365:6:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":60394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11374:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":60393,"name":"uint256","nodeType":"ElementaryTypeName","src":"11374:7:84","typeDescriptions":{}}}],"id":60395,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"11373:9:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":60390,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11354:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11358:6:84","memberName":"decode","nodeType":"MemberAccess","src":"11354:10:84","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":60396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11354:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11347:36:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60398,"nodeType":"ExpressionStatement","src":"11347:36:84"},{"expression":{"id":60399,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60333,"src":"11400:4:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":60334,"id":60400,"nodeType":"Return","src":"11393:11:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getDebt","nameLocation":"10551:7:84","parameters":{"id":60331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60320,"mutability":"mutable","name":"user_","nameLocation":"10576:5:84","nodeType":"VariableDeclaration","scope":60402,"src":"10568:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60319,"name":"address","nodeType":"ElementaryTypeName","src":"10568:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60322,"mutability":"mutable","name":"pointer_","nameLocation":"10605:8:84","nodeType":"VariableDeclaration","scope":60402,"src":"10591:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60321,"name":"string","nodeType":"ElementaryTypeName","src":"10591:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":60324,"mutability":"mutable","name":"lenderName_","nameLocation":"10637:11:84","nodeType":"VariableDeclaration","scope":60402,"src":"10623:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60323,"name":"string","nodeType":"ElementaryTypeName","src":"10623:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":60326,"mutability":"mutable","name":"token_","nameLocation":"10666:6:84","nodeType":"VariableDeclaration","scope":60402,"src":"10658:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60325,"name":"address","nodeType":"ElementaryTypeName","src":"10658:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60328,"mutability":"mutable","name":"ratemode_","nameLocation":"10690:9:84","nodeType":"VariableDeclaration","scope":60402,"src":"10682:17:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60327,"name":"uint256","nodeType":"ElementaryTypeName","src":"10682:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60330,"mutability":"mutable","name":"loanId_","nameLocation":"10717:7:84","nodeType":"VariableDeclaration","scope":60402,"src":"10709:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60329,"name":"uint256","nodeType":"ElementaryTypeName","src":"10709:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10558:172:84"},"returnParameters":{"id":60334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60333,"mutability":"mutable","name":"debt","nameLocation":"10785:4:84","nodeType":"VariableDeclaration","scope":60402,"src":"10777:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60332,"name":"uint256","nodeType":"ElementaryTypeName","src":"10777:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10776:14:84"},"scope":60669,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":60439,"nodeType":"FunctionDefinition","src":"11417:340:84","nodes":[],"body":{"id":60438,"nodeType":"Block","src":"11523:234:84","nodes":[],"statements":[{"assignments":[60413],"declarations":[{"constant":false,"id":60413,"mutability":"mutable","name":"key","nameLocation":"11541:3:84","nodeType":"VariableDeclaration","scope":60438,"src":"11533:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60412,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11533:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60422,"initialValue":{"arguments":[{"id":60415,"name":"USER_INDEX_TO_BORROWDATA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71225,"src":"11557:24:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":60418,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60404,"src":"11594:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60419,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60406,"src":"11601:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60416,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11583:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11587:6:84","memberName":"encode","nodeType":"MemberAccess","src":"11583:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11583:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60414,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"11547:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11547:63:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11533:77:84"},{"assignments":[60424],"declarations":[{"constant":false,"id":60424,"mutability":"mutable","name":"loanDetailsBytes","nameLocation":"11633:16:84","nodeType":"VariableDeclaration","scope":60438,"src":"11620:29:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60423,"name":"bytes","nodeType":"ElementaryTypeName","src":"11620:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60429,"initialValue":{"arguments":[{"id":60427,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60413,"src":"11677:3:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60425,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"11652:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11668:8:84","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"11652:24:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":60428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11652:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11620:61:84"},{"expression":{"arguments":[{"id":60432,"name":"loanDetailsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60424,"src":"11709:16:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":60433,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"11728:5:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILoan_$56049_$","typeString":"type(contract ILoan)"}},"id":60434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11734:14:84","memberName":"LoanBorrowData","nodeType":"MemberAccess","referencedDeclaration":56034,"src":"11728:20:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanBorrowData_$56034_storage_ptr_$","typeString":"type(struct ILoan.LoanBorrowData storage pointer)"}}],"id":60435,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11727:22:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanBorrowData_$56034_storage_ptr_$","typeString":"type(struct ILoan.LoanBorrowData storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LoanBorrowData_$56034_storage_ptr_$","typeString":"type(struct ILoan.LoanBorrowData storage pointer)"}],"expression":{"id":60430,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11698:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11702:6:84","memberName":"decode","nodeType":"MemberAccess","src":"11698:10:84","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":60436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11698:52:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"functionReturnParameters":60411,"id":60437,"nodeType":"Return","src":"11691:59:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBorrowData","nameLocation":"11426:13:84","parameters":{"id":60407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60404,"mutability":"mutable","name":"user_","nameLocation":"11448:5:84","nodeType":"VariableDeclaration","scope":60439,"src":"11440:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60403,"name":"address","nodeType":"ElementaryTypeName","src":"11440:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60406,"mutability":"mutable","name":"loanId_","nameLocation":"11463:7:84","nodeType":"VariableDeclaration","scope":60439,"src":"11455:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60405,"name":"uint256","nodeType":"ElementaryTypeName","src":"11455:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11439:32:84"},"returnParameters":{"id":60411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60410,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60439,"src":"11494:27:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData"},"typeName":{"id":60409,"nodeType":"UserDefinedTypeName","pathNode":{"id":60408,"name":"ILoan.LoanBorrowData","nameLocations":["11494:5:84","11500:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":56034,"src":"11494:20:84"},"referencedDeclaration":56034,"src":"11494:20:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_storage_ptr","typeString":"struct ILoan.LoanBorrowData"}},"visibility":"internal"}],"src":"11493:29:84"},"scope":60669,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":60476,"nodeType":"FunctionDefinition","src":"11763:344:84","nodes":[],"body":{"id":60475,"nodeType":"Block","src":"11869:238:84","nodes":[],"statements":[{"assignments":[60450],"declarations":[{"constant":false,"id":60450,"mutability":"mutable","name":"key","nameLocation":"11887:3:84","nodeType":"VariableDeclaration","scope":60475,"src":"11879:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60449,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11879:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60459,"initialValue":{"arguments":[{"id":60452,"name":"USER_INDEX_TO_LOANSUPPLYDATA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71222,"src":"11903:28:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":60455,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60441,"src":"11944:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60456,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60443,"src":"11951:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60453,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11933:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11937:6:84","memberName":"encode","nodeType":"MemberAccess","src":"11933:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11933:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60451,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"11893:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11893:67:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11879:81:84"},{"assignments":[60461],"declarations":[{"constant":false,"id":60461,"mutability":"mutable","name":"loanDetailsBytes","nameLocation":"11983:16:84","nodeType":"VariableDeclaration","scope":60475,"src":"11970:29:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60460,"name":"bytes","nodeType":"ElementaryTypeName","src":"11970:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60466,"initialValue":{"arguments":[{"id":60464,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60450,"src":"12027:3:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60462,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"12002:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12018:8:84","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"12002:24:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":60465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12002:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11970:61:84"},{"expression":{"arguments":[{"id":60469,"name":"loanDetailsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60461,"src":"12059:16:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":60470,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"12078:5:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILoan_$56049_$","typeString":"type(contract ILoan)"}},"id":60471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12084:14:84","memberName":"LoanSupplyData","nodeType":"MemberAccess","referencedDeclaration":56003,"src":"12078:20:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanSupplyData_$56003_storage_ptr_$","typeString":"type(struct ILoan.LoanSupplyData storage pointer)"}}],"id":60472,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12077:22:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanSupplyData_$56003_storage_ptr_$","typeString":"type(struct ILoan.LoanSupplyData storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LoanSupplyData_$56003_storage_ptr_$","typeString":"type(struct ILoan.LoanSupplyData storage pointer)"}],"expression":{"id":60467,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12048:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12052:6:84","memberName":"decode","nodeType":"MemberAccess","src":"12048:10:84","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":60473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12048:52:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"functionReturnParameters":60448,"id":60474,"nodeType":"Return","src":"12041:59:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSupplyData","nameLocation":"11772:13:84","parameters":{"id":60444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60441,"mutability":"mutable","name":"user_","nameLocation":"11794:5:84","nodeType":"VariableDeclaration","scope":60476,"src":"11786:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60440,"name":"address","nodeType":"ElementaryTypeName","src":"11786:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60443,"mutability":"mutable","name":"loanId_","nameLocation":"11809:7:84","nodeType":"VariableDeclaration","scope":60476,"src":"11801:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60442,"name":"uint256","nodeType":"ElementaryTypeName","src":"11801:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11785:32:84"},"returnParameters":{"id":60448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60476,"src":"11840:27:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":60446,"nodeType":"UserDefinedTypeName","pathNode":{"id":60445,"name":"ILoan.LoanSupplyData","nameLocations":["11840:5:84","11846:14:84"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"11840:20:84"},"referencedDeclaration":56003,"src":"11840:20:84","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"src":"11839:29:84"},"scope":60669,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":60513,"nodeType":"FunctionDefinition","src":"12113:430:84","nodes":[],"body":{"id":60512,"nodeType":"Block","src":"12299:244:84","nodes":[],"statements":[{"assignments":[60487],"declarations":[{"constant":false,"id":60487,"mutability":"mutable","name":"key","nameLocation":"12317:3:84","nodeType":"VariableDeclaration","scope":60512,"src":"12309:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60486,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12309:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60496,"initialValue":{"arguments":[{"id":60489,"name":"USER_ID_PROTECTION_FINANCIAL_TERMS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71243,"src":"12333:34:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":60492,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60478,"src":"12380:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60493,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60480,"src":"12387:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60490,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12369:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12373:6:84","memberName":"encode","nodeType":"MemberAccess","src":"12369:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12369:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60488,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"12323:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12323:73:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12309:87:84"},{"assignments":[60498],"declarations":[{"constant":false,"id":60498,"mutability":"mutable","name":"keyBytes","nameLocation":"12419:8:84","nodeType":"VariableDeclaration","scope":60512,"src":"12406:21:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60497,"name":"bytes","nodeType":"ElementaryTypeName","src":"12406:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60503,"initialValue":{"arguments":[{"id":60501,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60487,"src":"12455:3:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60499,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"12430:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12446:8:84","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"12430:24:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":60502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12430:29:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12406:53:84"},{"expression":{"arguments":[{"id":60506,"name":"keyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60498,"src":"12487:8:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":60507,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"12498:11:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":60508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12510:24:84","memberName":"ProtectionFinancialTerms","nodeType":"MemberAccess","referencedDeclaration":57272,"src":"12498:36:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}}],"id":60509,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12497:38:84","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}],"expression":{"id":60504,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12476:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12480:6:84","memberName":"decode","nodeType":"MemberAccess","src":"12476:10:84","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":60510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12476:60:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"functionReturnParameters":60485,"id":60511,"nodeType":"Return","src":"12469:67:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getProtectionFinancialTerms","nameLocation":"12122:27:84","parameters":{"id":60481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60478,"mutability":"mutable","name":"user_","nameLocation":"12167:5:84","nodeType":"VariableDeclaration","scope":60513,"src":"12159:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60477,"name":"address","nodeType":"ElementaryTypeName","src":"12159:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60480,"mutability":"mutable","name":"loanId_","nameLocation":"12190:7:84","nodeType":"VariableDeclaration","scope":60513,"src":"12182:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60479,"name":"uint256","nodeType":"ElementaryTypeName","src":"12182:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12149:54:84"},"returnParameters":{"id":60485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":60513,"src":"12250:43:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"},"typeName":{"id":60483,"nodeType":"UserDefinedTypeName","pathNode":{"id":60482,"name":"IProtection.ProtectionFinancialTerms","nameLocations":["12250:11:84","12262:24:84"],"nodeType":"IdentifierPath","referencedDeclaration":57272,"src":"12250:36:84"},"referencedDeclaration":57272,"src":"12250:36:84","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_storage_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"}},"visibility":"internal"}],"src":"12249:45:84"},"scope":60669,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":60534,"nodeType":"FunctionDefinition","src":"12549:201:84","nodes":[],"body":{"id":60533,"nodeType":"Block","src":"12646:104:84","nodes":[],"statements":[{"expression":{"id":60531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60520,"name":"marketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60518,"src":"12663:13:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":60524,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60515,"src":"12716:8:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":60527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12737:3:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":60525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12726:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12730:6:84","memberName":"encode","nodeType":"MemberAccess","src":"12726:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12726:15:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60523,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"12706:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12706:36:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60521,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"12679:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12695:10:84","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"12679:26:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":60530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12679:64:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12663:80:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":60519,"id":60532,"nodeType":"Return","src":"12656:87:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fetchMarketAddress","nameLocation":"12558:18:84","parameters":{"id":60516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60515,"mutability":"mutable","name":"pointer_","nameLocation":"12591:8:84","nodeType":"VariableDeclaration","scope":60534,"src":"12577:22:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60514,"name":"string","nodeType":"ElementaryTypeName","src":"12577:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12576:24:84"},"returnParameters":{"id":60519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60518,"mutability":"mutable","name":"marketAddress","nameLocation":"12631:13:84","nodeType":"VariableDeclaration","scope":60534,"src":"12623:21:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60517,"name":"address","nodeType":"ElementaryTypeName","src":"12623:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12622:23:84"},"scope":60669,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":60577,"nodeType":"FunctionDefinition","src":"12756:486:84","nodes":[],"body":{"id":60576,"nodeType":"Block","src":"12946:296:84","nodes":[],"statements":[{"assignments":[60546],"declarations":[{"constant":false,"id":60546,"mutability":"mutable","name":"key","nameLocation":"12964:3:84","nodeType":"VariableDeclaration","scope":60576,"src":"12956:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12956:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60556,"initialValue":{"arguments":[{"id":60548,"name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71276,"src":"12980:41:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":60551,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60536,"src":"13034:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60552,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60538,"src":"13041:11:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60553,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60540,"src":"13054:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13023:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13027:6:84","memberName":"encode","nodeType":"MemberAccess","src":"13023:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13023:39:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60547,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"12970:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12970:93:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12956:107:84"},{"expression":{"id":60562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60557,"name":"userBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60543,"src":"13074:13:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60560,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60546,"src":"13117:3:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60558,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"13090:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13106:10:84","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"13090:26:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":60561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13090:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13074:47:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":60563,"nodeType":"ExpressionStatement","src":"13074:47:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":60570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60565,"name":"userBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60543,"src":"13139:13:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":60568,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13164:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13156:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60566,"name":"address","nodeType":"ElementaryTypeName","src":"13156:7:84","typeDescriptions":{}}},"id":60569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13156:10:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13139:27:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205573657220446f6573204e6f74204861766520426c75657072696e74","id":60571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13168:35:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_f37177c73d6fea2776ecbe25c7d94a6ccc9bb37b622869ee607318e2887e3cc5","typeString":"literal_string \"ERR: User Does Not Have Blueprint\""},"value":"ERR: User Does Not Have Blueprint"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f37177c73d6fea2776ecbe25c7d94a6ccc9bb37b622869ee607318e2887e3cc5","typeString":"literal_string \"ERR: User Does Not Have Blueprint\""}],"id":60564,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13131:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13131:73:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60573,"nodeType":"ExpressionStatement","src":"13131:73:84"},{"expression":{"id":60574,"name":"userBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60543,"src":"13222:13:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":60544,"id":60575,"nodeType":"Return","src":"13215:20:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fetchUserBlueprint","nameLocation":"12765:18:84","parameters":{"id":60541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60536,"mutability":"mutable","name":"user_","nameLocation":"12801:5:84","nodeType":"VariableDeclaration","scope":60577,"src":"12793:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60535,"name":"address","nodeType":"ElementaryTypeName","src":"12793:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60538,"mutability":"mutable","name":"lenderName_","nameLocation":"12830:11:84","nodeType":"VariableDeclaration","scope":60577,"src":"12816:25:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60537,"name":"string","nodeType":"ElementaryTypeName","src":"12816:6:84","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":60540,"mutability":"mutable","name":"loanId_","nameLocation":"12859:7:84","nodeType":"VariableDeclaration","scope":60577,"src":"12851:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60539,"name":"uint256","nodeType":"ElementaryTypeName","src":"12851:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12783:89:84"},"returnParameters":{"id":60544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60543,"mutability":"mutable","name":"userBlueprint","nameLocation":"12927:13:84","nodeType":"VariableDeclaration","scope":60577,"src":"12919:21:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60542,"name":"address","nodeType":"ElementaryTypeName","src":"12919:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12918:23:84"},"scope":60669,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":60625,"nodeType":"FunctionDefinition","src":"13248:500:84","nodes":[],"body":{"id":60624,"nodeType":"Block","src":"13421:327:84","nodes":[],"statements":[{"assignments":[60589],"declarations":[{"constant":false,"id":60589,"mutability":"mutable","name":"key","nameLocation":"13439:3:84","nodeType":"VariableDeclaration","scope":60624,"src":"13431:11:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60588,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13431:7:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60598,"initialValue":{"arguments":[{"id":60591,"name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71300,"src":"13455:29:84","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":60594,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60579,"src":"13497:6:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60595,"name":"chain_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60581,"src":"13505:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60592,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13486:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13490:6:84","memberName":"encode","nodeType":"MemberAccess","src":"13486:10:84","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13486:26:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60590,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"13445:9:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13445:68:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13431:82:84"},{"assignments":[60600],"declarations":[{"constant":false,"id":60600,"mutability":"mutable","name":"priceFeedAddress","nameLocation":"13531:16:84","nodeType":"VariableDeclaration","scope":60624,"src":"13523:24:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60599,"name":"address","nodeType":"ElementaryTypeName","src":"13523:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":60605,"initialValue":{"arguments":[{"id":60603,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60589,"src":"13577:3:84","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60601,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"13550:15:84","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13566:10:84","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"13550:26:84","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":60604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13550:31:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13523:58:84"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":60612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60607,"name":"priceFeedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60600,"src":"13599:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":60610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13627:1:84","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60609,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13619:7:84","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60608,"name":"address","nodeType":"ElementaryTypeName","src":"13619:7:84","typeDescriptions":{}}},"id":60611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13619:10:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13599:30:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20507269636520466565642041646472657373204e6f7420466f756e64","id":60613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13631:35:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ce79ac3cd1d8e8348c535233238cfb4bcd073a5b25d2e1e93e81da65588431b","typeString":"literal_string \"ERR: Price Feed Address Not Found\""},"value":"ERR: Price Feed Address Not Found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3ce79ac3cd1d8e8348c535233238cfb4bcd073a5b25d2e1e93e81da65588431b","typeString":"literal_string \"ERR: Price Feed Address Not Found\""}],"id":60606,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13591:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13591:76:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60615,"nodeType":"ExpressionStatement","src":"13591:76:84"},{"expression":{"id":60620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":60616,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60586,"src":"13677:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":60618,"name":"priceFeedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60600,"src":"13701:16:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60617,"name":"getLatestPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71768,"src":"13686:14:84","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":60619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13686:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13677:41:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":60621,"nodeType":"ExpressionStatement","src":"13677:41:84"},{"expression":{"id":60622,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60586,"src":"13735:6:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":60587,"id":60623,"nodeType":"Return","src":"13728:13:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fetchTokenPrice","nameLocation":"13257:15:84","parameters":{"id":60584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60579,"mutability":"mutable","name":"token_","nameLocation":"13290:6:84","nodeType":"VariableDeclaration","scope":60625,"src":"13282:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60578,"name":"address","nodeType":"ElementaryTypeName","src":"13282:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60581,"mutability":"mutable","name":"chain_","nameLocation":"13314:6:84","nodeType":"VariableDeclaration","scope":60625,"src":"13306:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60580,"name":"uint256","nodeType":"ElementaryTypeName","src":"13306:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60583,"mutability":"mutable","name":"decimcals_","nameLocation":"13338:10:84","nodeType":"VariableDeclaration","scope":60625,"src":"13330:18:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60582,"name":"uint256","nodeType":"ElementaryTypeName","src":"13330:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13272:82:84"},"returnParameters":{"id":60587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60586,"mutability":"mutable","name":"result","nameLocation":"13409:6:84","nodeType":"VariableDeclaration","scope":60625,"src":"13401:14:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60585,"name":"uint256","nodeType":"ElementaryTypeName","src":"13401:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13400:16:84"},"scope":60669,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":60668,"nodeType":"FunctionDefinition","src":"13754:707:84","nodes":[],"body":{"id":60667,"nodeType":"Block","src":"13980:481:84","nodes":[],"statements":[{"assignments":[60638],"declarations":[{"constant":false,"id":60638,"mutability":"mutable","name":"updateLoanData","nameLocation":"14003:14:84","nodeType":"VariableDeclaration","scope":60667,"src":"13990:27:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60637,"name":"bytes","nodeType":"ElementaryTypeName","src":"13990:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60650,"initialValue":{"arguments":[{"hexValue":"75706461746550726f74656374696f6e46696e616e6369616c5465726d732862797465732c616464726573732c75696e743235362c75696e743829","id":60641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14057:61:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb32ff001a4eb68cd7616d1254159c01d14b615b9a999c5986c79eeaecaf013","typeString":"literal_string \"updateProtectionFinancialTerms(bytes,address,uint256,uint8)\""},"value":"updateProtectionFinancialTerms(bytes,address,uint256,uint8)"},{"id":60642,"name":"protectionData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60627,"src":"14132:15:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":60643,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60629,"src":"14161:5:84","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60644,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60631,"src":"14180:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":60647,"name":"updateFinancialTermsField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60634,"src":"14207:25:84","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}],"id":60646,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14201:5:84","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":60645,"name":"uint8","nodeType":"ElementaryTypeName","src":"14201:5:84","typeDescriptions":{}}},"id":60648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14201:32:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8cb32ff001a4eb68cd7616d1254159c01d14b615b9a999c5986c79eeaecaf013","typeString":"literal_string \"updateProtectionFinancialTerms(bytes,address,uint256,uint8)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":60639,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14020:3:84","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14024:19:84","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14020:23:84","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":60649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14020:223:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"13990:253:84"},{"assignments":[60652],"declarations":[{"constant":false,"id":60652,"mutability":"mutable","name":"success","nameLocation":"14258:7:84","nodeType":"VariableDeclaration","scope":60667,"src":"14253:12:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":60651,"name":"bool","nodeType":"ElementaryTypeName","src":"14253:4:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":60661,"initialValue":{"arguments":[{"hexValue":"55706461746550726f74656374696f6e46544d496e666f416374696f6e","id":60654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14305:31:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_42e9919af58b7d9662bbcbc17a207239595334cd344affa146b7f19ace02e6b6","typeString":"literal_string \"UpdateProtectionFTMInfoAction\""},"value":"UpdateProtectionFTMInfoAction"},{"hexValue":"30","id":60655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14338:7:84","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":60656,"name":"updateLoanData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60638,"src":"14347:14:84","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":60657,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"14363:4:84","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":60658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14368:9:84","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"14363:14:84","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":60659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14378:4:84","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"14363:19:84","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42e9919af58b7d9662bbcbc17a207239595334cd344affa146b7f19ace02e6b6","typeString":"literal_string \"UpdateProtectionFTMInfoAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":60653,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"14280:24:84","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":60660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14280:103:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"14253:130:84"},{"expression":{"arguments":[{"id":60663,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60652,"src":"14401:7:84","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a2055706461746550726f74656374696f6e46544d496e666f416374696f6e206661696c6564","id":60664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14410:43:84","typeDescriptions":{"typeIdentifier":"t_stringliteral_de63b8ba80c7115e25fb83a94352ee10e8f34e16fcd909564f7f27b7a2cdf2f8","typeString":"literal_string \"ERR: UpdateProtectionFTMInfoAction failed\""},"value":"ERR: UpdateProtectionFTMInfoAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_de63b8ba80c7115e25fb83a94352ee10e8f34e16fcd909564f7f27b7a2cdf2f8","typeString":"literal_string \"ERR: UpdateProtectionFTMInfoAction failed\""}],"id":60662,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14393:7:84","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14393:61:84","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60666,"nodeType":"ExpressionStatement","src":"14393:61:84"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_updateProtectionFinancialTerms","nameLocation":"13763:31:84","parameters":{"id":60635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60627,"mutability":"mutable","name":"protectionData_","nameLocation":"13817:15:84","nodeType":"VariableDeclaration","scope":60668,"src":"13804:28:84","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60626,"name":"bytes","nodeType":"ElementaryTypeName","src":"13804:5:84","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":60629,"mutability":"mutable","name":"user_","nameLocation":"13850:5:84","nodeType":"VariableDeclaration","scope":60668,"src":"13842:13:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60628,"name":"address","nodeType":"ElementaryTypeName","src":"13842:7:84","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60631,"mutability":"mutable","name":"loanId_","nameLocation":"13873:7:84","nodeType":"VariableDeclaration","scope":60668,"src":"13865:15:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60630,"name":"uint256","nodeType":"ElementaryTypeName","src":"13865:7:84","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60634,"mutability":"mutable","name":"updateFinancialTermsField","nameLocation":"13928:25:84","nodeType":"VariableDeclaration","scope":60668,"src":"13890:63:84","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"},"typeName":{"id":60633,"nodeType":"UserDefinedTypeName","pathNode":{"id":60632,"name":"IProtection.UpdateFinancialTermsField","nameLocations":["13890:11:84","13902:25:84"],"nodeType":"IdentifierPath","referencedDeclaration":57234,"src":"13890:37:84"},"referencedDeclaration":57234,"src":"13890:37:84","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}},"visibility":"internal"}],"src":"13794:165:84"},"returnParameters":{"id":60636,"nodeType":"ParameterList","parameters":[],"src":"13980:0:84"},"scope":60669,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":59476,"name":"BlueprintBase","nameLocations":["992:13:84"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"992:13:84"},"id":59477,"nodeType":"InheritanceSpecifier","src":"992:13:84"},{"baseName":{"id":59478,"name":"ChainlinkOraclePrice","nameLocations":["1007:20:84"],"nodeType":"IdentifierPath","referencedDeclaration":71810,"src":"1007:20:84"},"id":59479,"nodeType":"InheritanceSpecifier","src":"1007:20:84"}],"canonicalName":"ForeclosureBlueprint","contractDependencies":[],"contractKind":"contract","documentation":{"id":59475,"nodeType":"StructuredDocumentation","src":"820:138:84","text":" @title ForeclosureBlueprint\n @dev This contract is used to manage loans and protections to ensure a user never gets liqudated"},"fullyImplemented":true,"linearizedBaseContracts":[60669,71810,71548,67625,67552,71343,71416,66682],"name":"ForeclosureBlueprint","nameLocation":"968:20:84","scope":60670,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":84}
Claim Blueprint
0xE431A5184DF23CCbc06BD7fAcc2866Efa551F96C
{"abi":[{"type":"constructor","inputs":[{"name":"concreteStorage_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ACL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_LENDER_MARKET","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_CONCRETE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_MASTERVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_PORTFOLIO","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_STREAMVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_ETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_USDC","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_WETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CONCRETE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_CLAIM_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_LOAN_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PORTFOLIO_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PROTECTION_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_RECEIPT_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_REWARDS_TREASURY","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_STAKING_CONTRACT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_TOKEN_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"MODULE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER_NAME_MODULES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_POSITION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ROLE_NAME_USER_TO_EXIST","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_DURATION_AND_REWARDS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_RECEIPT_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"SUDO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_CLAIM","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTIONID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_UPDATES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_BORROWDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANUPDATE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_PORTFOLIOID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"executeActionTransaction","inputs":[{"name":"actionName_","type":"string","internalType":"string"},{"name":"value_","type":"uint256","internalType":"uint256"},{"name":"data_","type":"bytes","internalType":"bytes"},{"name":"operation_","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getActionAddress","inputs":[{"name":"actionName_","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getDecimals","inputs":[{"name":"priceFeedAddress_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getLatestPrice","inputs":[{"name":"priceFeedAddress_","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initiateForeclosure","inputs":[{"name":"loanId_","type":"uint256","internalType":"uint256"},{"name":"uniqueId_","type":"uint256","internalType":"uint256"},{"name":"user_","type":"address","internalType":"address"},{"name":"portfolioId_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"processClaimFee","inputs":[{"name":"user_","type":"address","internalType":"address"},{"name":"loanId_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"startClaim","inputs":[{"name":"user_","type":"address","internalType":"address"},{"name":"uniqueId_","type":"uint256","internalType":"uint256"},{"name":"pointer_","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferLoanToConcrete","inputs":[{"name":"loanId_","type":"uint256","internalType":"uint256"},{"name":"uniqueId_","type":"uint256","internalType":"uint256"},{"name":"user_","type":"address","internalType":"address"},{"name":"portfolioId_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b50604051620057503803806200575083398101604081905262000034916200034f565b808080604051602001620000569067141493d513d0d3d360c21b815260080190565b60408051601f1981840301815291905280516020909101206001600160a01b038216620000d65760405162461bcd60e51b815260206004820152602360248201527f4552523a2053746f7261676520616464726573732063616e6e6f74206265207a60448201526265726f60e81b60648201526084015b60405180910390fd5b6001600160e01b031981166200012f5760405162461bcd60e51b815260206004820152601d60248201527f4552523a204e616d6573706163652063616e6e6f74206265207a65726f0000006044820152606401620000cd565b6001600160a01b039091166080526001600160e01b03191660a05250604080518082018252601681527f416464726573732e4d616e616765722e416374696f6e000000000000000000006020808301919091529151600092620001c49291620001ae91016020808252600190820152601f60fa1b604082015260600190565b60408051601f19818403018152919052620002c3565b905060006080516001600160a01b03166321f8a721836040518263ffffffff1660e01b8152600401620001f991815260200190565b602060405180830381865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d91906200034f565b604051632f47185360e11b81526001600160a01b038216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156200029457600080fd5b505af4158015620002a9573d6000803e3d6000fd5b505050506001600160a01b031660c052506200041e915050565b60a051604051631ed43b8b60e21b815260009173__$cb588f1a84862ec6179da8c4e68bd890a8$__91637b50ee2c91620003049187908790600401620003c2565b602060405180830381865af415801562000322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000348919062000404565b9392505050565b6000602082840312156200036257600080fd5b81516001600160a01b03811681146200034857600080fd5b6000815180845260005b81811015620003a25760208185018101518683018201520162000384565b506000602082860101526020601f19601f83011685010191505092915050565b63ffffffff60e01b84168152606060208201526000620003e660608301856200037a565b8281036040840152620003fa81856200037a565b9695505050505050565b6000602082840312156200041757600080fd5b5051919050565b60805160a05160c051615276620004da600039600081816117b701526127b601526000612915015260008181611139015281816115fd01528181611de301528181611ed901528181611fd301528181612139015281816121f40152818161243e0152818161255d0152818161266001528181612ab201528181612c9201528181612def01528181613042015281816131e10152818161374801528181613b2701528181613e7b015281816140b501526141d501526152766000f3fe608060405234801561001057600080fd5b50600436106104555760003560e01c80638b40da7d11610250578063c414d4f911610150578063dbd55fb3116100c8578063eaca386411610097578063efdcd2c51161007c578063efdcd2c514610ecc578063f61e60f214610edf578063ffbf516314610f1b57600080fd5b8063eaca386414610e88578063ec11384a14610e9057600080fd5b8063dbd55fb314610df5578063e01a56ba14610dfd578063e51a3bab14610e10578063e642ad3414610e4c57600080fd5b8063cf54aaa01161011f578063d15263d311610104578063d15263d314610d41578063d83205c014610d7d578063d88597de14610db957600080fd5b8063cf54aaa014610ce0578063d017d35714610d0557600080fd5b8063c414d4f914610c58578063c5ad787914610c60578063ca6d5e3314610c9c578063ccca891114610cd857600080fd5b8063a2fd43c5116101e3578063aacb7f34116101b2578063b70855fb11610197578063b70855fb14610bd8578063ba9a08d714610c14578063be22fa1e14610c5057600080fd5b8063aacb7f3414610b94578063af895a3b14610b9c57600080fd5b8063a2fd43c514610b3d578063a3043fb814610b45578063a5be606314610b58578063a652cb801461048a57600080fd5b806391b9b8271161021f57806391b9b82714610af157806395789e1c146105325780639d18526414610af95780639e5f854214610b3557600080fd5b80638b40da7d14610a825780638c3e62b614610a8a5780638d7e9e9414610a9257806391aab3e414610ab557600080fd5b80635e2092491161035b578063697e744c116102ee57806379c52aca116102bd5780637d49df3b116102a25780637d49df3b146109ce5780637d95de8e14610a0a5780638b3e047114610a4657600080fd5b806379c52aca146109565780637a25c9d31461099257600080fd5b8063697e744c1461089a5780636a0b3f64146108a2578063724348ab146108de578063739baf491461091a57600080fd5b806361945bfc1161032a57806361945bfc146107aa57806362a4c3df146107e6578063638bf74f14610822578063678df18f1461085e57600080fd5b80635e209249146107225780635e61dc381461072a5780635f39ca2214610732578063608dade91461076e57600080fd5b806326026d18116103ee578063420ea360116103bd57806342ff308b116103a257806342ff308b1461066e578063430c6fe6146106aa57806359dcf3f6146106e657600080fd5b8063420ea360146105f6578063423ac8d91461063257600080fd5b806326026d181461053a578063264c1356146105765780632a0f4d6b146105b25780632d1da17e146105ba57600080fd5b80630e4943321161042a5780630e494332146104ce57806316345f181461050a5780631c22eb861461051d57806325889b221461053257600080fd5b806272e1401461045a578062a9d96e14610475578063057afbfe1461048a578063094d3a34146104c6575b600080fd5b610462610f53565b6040519081526020015b60405180910390f35b61047d610fb8565b60405161046c91906145dd565b61047d6040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b610462610fd4565b61047d6040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b610462610518366004614615565b611005565b61053061052b366004614632565b611093565b005b61046261137f565b61047d6040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b61047d6040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b6104626113b0565b61047d6040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b61047d6040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b61047d6040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b61047d6040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b61047d6040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b61047d6040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b6104626113e1565b61047d611412565b61047d6040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b61047d6040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b61047d6040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b61047d6040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b61047d6040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b61047d6040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b61047d61142e565b61047d6040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b61047d6040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b61047d6040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b61047d6040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b61047d6040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b61047d6040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b61047d6040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b61047d6040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b61046261144a565b61046261147b565b610aa5610aa03660046147ce565b6114ac565b604051901515815260200161046c565b61047d6040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b61046261180d565b61047d6040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b61047d61183e565b61047d61185a565b610530610b53366004614866565b611876565b61047d6040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b61047d611afd565b61047d6040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b61047d6040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b61047d6040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b61047d611b19565b61047d611b35565b61047d6040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b61047d6040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b610462611b51565b610cf3610cee366004614615565b611b82565b60405160ff909116815260200161046c565b61047d6040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b61047d6040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b61047d6040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b61047d6040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b610462611bfe565b610530610e0b366004614866565b611c2f565b61047d6040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b61047d6040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b61047d61225e565b61047d6040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b610530610eda3660046148a5565b61227a565b61047d6040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610f2e610f293660046148fe565b612776565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161046c565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b6040518060600160405280602481526020016152526024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610f80565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190614952565b50505091505061108b81612834565b949350505050565b60006110ef6040518060600160405280602b8152602001615227602b91396040805173ffffffffffffffffffffffffffffffffffffffff871660208201529081018590526060015b6040516020818303038152906040526128ca565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526111c691908101906149d2565b6040517fa9363ff900000000000000000000000000000000000000000000000000000000815290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__9063a9363ff9906112199084906004016145dd565b60006040518083038186803b15801561123157600080fd5b505af4158015611245573d6000803e3d6000fd5b5050505060006112558585612982565b905060006112638686612b5e565b9050600061128283608001518361010001518560e0015160ff16612d35565b905060008480602001905181019061129a9190614a1b565b905060006112a9898984612f12565b60e08601516040517fe9db0bb600000000000000000000000000000000000000000000000000000000815260048101839052602481018690526305f5e100604482018190526064820152600a90911860ff16608482015290915060009073__$6f3bb55dcef4043805ff849f911f80739c$__9063e9db0bb69060a401602060405180830381865af4158015611342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113669190614a8a565b9050611373818b8b612f99565b50505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610f80565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610f80565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610f80565b6040518060600160405280602981526020016151b16029913981565b60405180606001604052806023815260200161518e6023913981565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610f80565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610f80565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611545907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e457869737400000000000000000000000084830152825191820186905233928201929092529092506000916115cb916060016110db565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167d9190614aa3565b61170e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60008830898989600181111561172657611726614ac5565b60405160240161173a959493929190614af4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b050000000000000000000000000000000000000000000000000000000017905290506118007f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6134a9565b9998505050505050505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610f80565b6040518060600160405280602581526020016151206025913981565b6040518060600160405280602881526020016151456028913981565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156118ef57600080fd5b505af4158015611903573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561196957600080fd5b505af415801561197d573d6000803e3d6000fd5b505050506000806000600760405160200161199a93929190614b51565b6040516020818303038152906040529050600081848760036040516024016119c59493929190614b81565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7b6a4ce6000000000000000000000000000000000000000000000000000000001790528151808301909252601482527f5570646174654c6f616e496e666f416374696f6e00000000000000000000000090820152909150600090611a7f908284816114ac565b905080611ae8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552523a205570646174654c6f616e496e666f416374696f6e206661696c65646044820152606401611705565b611af487878787611c2f565b50505050505050565b6040518060600160405280602b8152602001615227602b913981565b60405180606001604052806021815260200161516d6021913981565b6040518060600160405280602581526020016151da6025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610f80565b6000808290508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf79190614be8565b9392505050565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610f80565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015611ca857600080fd5b505af4158015611cbc573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015611d2257600080fd5b505af4158015611d36573d6000803e3d6000fd5b505050506000611d9960405180606001604052806023815260200161518e602391396040516020016110db9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015611e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614c0e565b90506000611ea76040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525085886040516020016110db929190918252602082015260400190565b6040517fe2b202bf000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e2b202bf90602401600060405180830381600087803b158015611f3257600080fd5b505af1158015611f46573d6000803e3d6000fd5b505050506000611fa16040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525086896040516020016110db929190918252602082015260400190565b6040517f0e14a376000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690630e14a37690602401600060405180830381600087803b15801561202c57600080fd5b505af1158015612040573d6000803e3d6000fd5b5050505060006120a16040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525060018a6040516020016110db92919060ff929092168252602082015260400190565b905060006121006040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525060018b6040516020016110db92919060ff929092168252602082015260400190565b6040517fe2a4853a00000000000000000000000000000000000000000000000000000000815260048101829052602481018c90529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e2a4853a90604401600060405180830381600087803b15801561219257600080fd5b505af11580156121a6573d6000803e3d6000fd5b50506040517fca446dd90000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff88811660248301527f000000000000000000000000000000000000000000000000000000000000000016925063ca446dd99150604401600060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b5050505050505050505050505050565b6040518060600160405280602481526020016150fc6024913981565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156122f357600080fd5b505af4158015612307573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810185905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561236d57600080fd5b505af4158015612381573d6000803e3d6000fd5b5050505060006123f46040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525085856040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa158015612485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a99190614a8a565b905060006125136040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e49640000000000000000000000000000000000815250876040516020016110db919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa1580156125a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c89190614a8a565b905060006126166040518060600160405280602b8152602001615227602b91396040805173ffffffffffffffffffffffffffffffffffffffff8c1660208201529081018790526060016110db565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa1580156126a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526126ed91908101906149d2565b90506000818060200190518101906127059190614a1b565b90506000808260400151111561272057506040810151612746565b60808201511561273557506080810151612746565b60c082015115612746575060c08101515b801561275d576127588b888b84613584565b612769565b612769878b8d88611876565b5050505050505050505050565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb906127ed9085903090600401614c2b565b602060405180830381865afa15801561280a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282e9190614c0e565b92915050565b6000808212156128c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4552523a2043616e6e6f7420636f6e766572742061206e65676174697665206e60448201527f756d62657220746f20616e20756e7369676e6564206e756d62657200000000006064820152608401611705565b5090565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c90612941907f00000000000000000000000000000000000000000000000000000000000000009087908790600401614c63565b602060405180830381865af415801561295e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf79190614a8a565b6129f96040518061010001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600060ff1681525090565b6000612a686040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525085856040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612af9573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612b3f91908101906149d2565b905080806020019051810190612b559190614cb0565b95945050505050565b612bd960405180610120016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000612c486040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525085856040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612cd9573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612d1f91908101906149d2565b905080806020019051810190612b559190614d57565b600080612da56040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525086866040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015612e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5a9190614c0e565b905073ffffffffffffffffffffffffffffffffffffffff8116612eff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a20507269636520466565642041646472657373204e6f7420466f756e60448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401611705565b612f0881611005565b9695505050505050565b60408051600060208083018290528351808403909101815291830183529183015182919015612f545783606001519150612f4f8187876000613946565b612f90565b608084015115612f72578360a001519150612f4f8187876001613946565b60c084015115612f90578360e001519150612f908187876002613946565b50949350505050565b6000612ff860405180606001604052806023815260200161518e602391396040516020016110db9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ad9190614c0e565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561312957600080fd5b505af415801561313d573d6000803e3d6000fd5b50505050600061314d8585612982565b9050600061315b8686612b5e565b905060006131976040518060600160405280602881526020016151ff6028913983608001518461010001516040516020016110db929190614e26565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324c9190614c0e565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156132c857600080fd5b505af41580156132dc573d6000803e3d6000fd5b50505060808086015160c0808801516040805173ffffffffffffffffffffffffffffffffffffffff808916602083015294851691810191909152606081018f90529384015290881660a08301526000925001604051602081830303815290604052600061334e8b87608001518c613ac1565b60405160240161336093929190614e48565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ab03673000000000000000000000000000000000000000000000000000000001790528151808301909252600c82527f426f72726f77416374696f6e00000000000000000000000000000000000000009082015290915060009061341a908284816114ac565b905080612769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a20426f72726f77416374696f6e20657865637574696f6e206661696c60448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401611705565b6000808360018111156134be576134be614ac5565b14806134db575060018360018111156134d9576134d9614ac5565b145b613541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e207479706500000000006044820152606401611705565b600183600181111561355557613555614ac5565b0361356d576000808551602087018986f49050612b55565b600080855160208701888a87f19695505050505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156135fd57600080fd5b505af4158015613611573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561367757600080fd5b505af415801561368b573d6000803e3d6000fd5b5050505060006136fe6040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525086866040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa15801561378f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b39190614a8a565b905060006137c18787612b5e565b60c08101516040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152818101879052805180830382018152606083019091529192506000906138179083908b9087908c90608401614e8a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe81bdb0d000000000000000000000000000000000000000000000000000000001790528151808301909252601182527f437265617465436c61696d416374696f6e000000000000000000000000000000908201529091506000906138d1908284816114ac565b90508061393a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4552523a20437265617465436c61696d416374696f6e206661696c65640000006044820152606401611705565b6113738a8a898b613c54565b600084848484600381111561395d5761395d614ac5565b6040516024016139709493929190614ecf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8cb32ff0000000000000000000000000000000000000000000000000000000001790528151808301909252601d82527f55706461746550726f74656374696f6e46544d496e666f416374696f6e00000090820152909150600090613a2a908284816114ac565b905080613ab9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552523a2075706461746550726f74656374696f6e46696e616e6369616c546560448201527f726d73206661696c6564000000000000000000000000000000000000000000006064820152608401611705565b505050505050565b600080613af5604051806060016040528060288152602001615145602891398686866040516020016110db93929190614f17565b6040517f21f8a721000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa158015613b83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ba79190614c0e565b915073ffffffffffffffffffffffffffffffffffffffff8216613c4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a205573657220446f6573204e6f74204861766520426c75657072696e60448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401611705565b509392505050565b6000613c608585612b5e565b90506000613c7c8260c001518361010001518460e00151612d35565b9050600073__$6f3bb55dcef4043805ff849f911f80739c$__63e9db0bb686846305f5e100808860e00151600a613cb391906150a5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b1681526004810195909552602485019390935260448401919091526064830152608482015260a401602060405180830381865af4158015613d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d459190614a8a565b9050611af4818460c00151898660800151888b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b158015613dba57600080fd5b505af4158015613dce573d6000803e3d6000fd5b505050506000613e3160405180606001604052806023815260200161518e602391396040516020016110db9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee69190614c0e565b9050600087613ef6888887613ac1565b60405173ffffffffffffffffffffffffffffffffffffffff928316602482015290821660448201529083166064820152608481018a905260a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c54de4f000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f5472616e73666572546f6b656e416374696f6e0000000000000000000000000090820152909150600090613fea908284816114ac565b905080614053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a205472616e73666572546f6b656e416374696f6e206661696c6564006044820152606401611705565b611373898b614061896140b1565b6040805173ffffffffffffffffffffffffffffffffffffffff94851660208201529081019290925282166060820152908a16608082015260a0016040516020818303038152906040528887614152565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166321f8a721614134846040516020016110db9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040518263ffffffff1660e01b81526004016127ed91815260200190565b60008060008580602001905181019061416b91906150b1565b9350509250925060006141a36040518060600160405280602481526020016152526024913987866040516020016110db929190614c2b565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015614231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142559190614aa3565b6142e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552523a204e6f7420616e20617070726f76656420636f6c6c61746572616c2060448201527f74797065000000000000000000000000000000000000000000000000000000006064820152608401611705565b8373ffffffffffffffffffffffffffffffffffffffff811663095ea7b3614308858a8a613ac1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018790526044016020604051808303816000875af115801561437a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061439e9190614aa3565b614404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552523a20417070726f7665206661696c6564000000000000000000000000006044820152606401611705565b6000886000614414868b8b613ac1565b60405160240161442693929190614e48565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb12f7774000000000000000000000000000000000000000000000000000000001790528151808301909252600c82527f537570706c79416374696f6e0000000000000000000000000000000000000000908201529091506000906144e0908284816114ac565b905080611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a20537570706c79416374696f6e20657865637574696f6e206661696c60448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401611705565b60005b8381101561458a578181015183820152602001614572565b50506000910152565b600081518084526145ab81602086016020860161456f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611bf76020830184614593565b73ffffffffffffffffffffffffffffffffffffffff8116811461461257600080fd5b50565b60006020828403121561462757600080fd5b8135611bf7816145f0565b6000806040838503121561464557600080fd5b8235614650816145f0565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610100810167ffffffffffffffff811182821017156146b1576146b161465e565b60405290565b604051610120810167ffffffffffffffff811182821017156146b1576146b161465e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156147225761472261465e565b604052919050565b600067ffffffffffffffff8211156147445761474461465e565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600061478361477e8461472a565b6146db565b905082815283838301111561479757600080fd5b828260208301376000602084830101529392505050565b600082601f8301126147bf57600080fd5b611bf783833560208501614770565b600080600080608085870312156147e457600080fd5b843567ffffffffffffffff808211156147fc57600080fd5b614808888389016147ae565b955060208701359450604087013591508082111561482557600080fd5b508501601f8101871361483757600080fd5b61484687823560208401614770565b92505060608501356002811061485b57600080fd5b939692955090935050565b6000806000806080858703121561487c57600080fd5b84359350602085013592506040850135614895816145f0565b9396929550929360600135925050565b6000806000606084860312156148ba57600080fd5b83356148c5816145f0565b925060208401359150604084013567ffffffffffffffff8111156148e857600080fd5b6148f4868287016147ae565b9150509250925092565b60006020828403121561491057600080fd5b813567ffffffffffffffff81111561492757600080fd5b61108b848285016147ae565b805169ffffffffffffffffffff8116811461494d57600080fd5b919050565b600080600080600060a0868803121561496a57600080fd5b61497386614933565b945060208601519350604086015192506060860151915061499660808701614933565b90509295509295909350565b60006149b061477e8461472a565b90508281528383830111156149c457600080fd5b611bf783602083018461456f565b6000602082840312156149e457600080fd5b815167ffffffffffffffff8111156149fb57600080fd5b8201601f81018413614a0c57600080fd5b61108b848251602084016149a2565b60006101008284031215614a2e57600080fd5b614a3661468d565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201528091505092915050565b600060208284031215614a9c57600080fd5b5051919050565b600060208284031215614ab557600080fd5b81518015158114611bf757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60a081526000614b0760a0830188614593565b73ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152614b3b8186614593565b91505060ff831660808301529695505050505050565b60ff8481168252831660208201526060810160088310614b7357614b73614ac5565b826040830152949350505050565b608081526000614b946080830187614593565b905073ffffffffffffffffffffffffffffffffffffffff8516602083015283604083015260048310614bc857614bc8614ac5565b82606083015295945050505050565b805160ff8116811461494d57600080fd5b600060208284031215614bfa57600080fd5b611bf782614bd7565b805161494d816145f0565b600060208284031215614c2057600080fd5b8151611bf7816145f0565b604081526000614c3e6040830185614593565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152606060208201526000614c9e6060830185614593565b8281036040840152612f088185614593565b60006101008284031215614cc357600080fd5b614ccb61468d565b82518152602083015160208201526040830151614ce7816145f0565b6040820152606083810151908201526080830151614d04816145f0565b8060808301525060a083015160a082015260c083015160c0820152614d2b60e08401614bd7565b60e08201529392505050565b600082601f830112614d4857600080fd5b611bf7838351602085016149a2565b600060208284031215614d6957600080fd5b815167ffffffffffffffff80821115614d8157600080fd5b908301906101208286031215614d9657600080fd5b614d9e6146b7565b82518152614dae60208401614c03565b60208201526040830151604082015260608301516060820152608083015182811115614dd957600080fd5b614de587828601614d37565b60808301525060a083015160a0820152614e0160c08401614c03565b60c082015260e083810151908201526101009283015192810192909252509392505050565b604081526000614e396040830185614593565b90508260208301529392505050565b606081526000614e5b6060830186614593565b905060ff8416602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b608081526000614e9d6080830187614593565b73ffffffffffffffffffffffffffffffffffffffff959095166020830152506040810192909252606090910152919050565b608081526000614ee26080830187614593565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260ff16606090910152919050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000614f466060830185614593565b9050826040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b80851115614fde57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614fc457614fc4614f56565b80851615614fd157918102915b93841c9390800290614f8a565b509250929050565b600082614ff55750600161282e565b816150025750600061282e565b816001811461501857600281146150225761503e565b600191505061282e565b60ff84111561503357615033614f56565b50506001821b61282e565b5060208310610133831016604e8410600b8410161715615061575081810a61282e565b61506b8383614f85565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561509d5761509d614f56565b029392505050565b6000611bf78383614fe6565b600080600080608085870312156150c757600080fd5b84516150d2816145f0565b6020860151604087015191955093506150ea816145f0565b606086015190925061485b816145f056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c6572416464726573732e4c656e6465724e616d652e436861696e49642e4d61726b65744164647265737350726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"953:13720:83:-:0;;;1022:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1074:16;536::139;458::108;493:28;;;;;;-1:-1:-1;;;511:23:249;;559:1;550:11;;309:258;493:28:108;;;;-1:-1:-1;;493:28:108;;;;;;;;;483:39;;493:28;483:39;;;;-1:-1:-1;;;;;897:29:138;;889:77;;;;-1:-1:-1;;;889:77:138;;774:2:249;889:77:138;;;756:21:249;813:2;793:18;;;786:30;852:34;832:18;;;825:62;-1:-1:-1;;;903:18:249;;;896:33;946:19;;889:77:138;;;;;;;;;-1:-1:-1;;;;;;984:23:138;;976:65;;;;-1:-1:-1;;;976:65:138;;1178:2:249;976:65:138;;;1160:21:249;1217:2;1197:18;;;1190:30;1256:31;1236:18;;;1229:59;1305:18;;976:65:138;:353:249;:65:138;-1:-1:-1;;;;;1051:51:138;;;;;-1:-1:-1;;;;;;1112:22:138;;;-1:-1:-1;588:22:139::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;;612:15;;564:11:::1;::::0;578:50:::1;::::0;588:22;612:15:::1;::::0;::::1;1536:2:249::0;1518:21;;;1575:1;1555:18;;;1548:29;-1:-1:-1;;;1608:2:249;1593:18;;1586:31;1649:2;1634:18;;1334:324;612:15:139::1;;::::0;;-1:-1:-1;;612:15:139;;::::1;::::0;;;;;;578:9:::1;:50::i;:::-;564:64;;638:12;653:15;;-1:-1:-1::0;;;;;653:26:139::1;;680:3;653:31;;;;;;;;;;;;;1809:25:249::0;;1797:2;1782:18;;1663:177;653:31:139::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:30;::::0;-1:-1:-1;;;694:30:139;;-1:-1:-1;;;;;2017:32:249;;694:30:139::1;::::0;::::1;1999:51:249::0;638:46:139;;-1:-1:-1;694:8:139::1;::::0;:24:::1;::::0;1972:18:249;;694:30:139::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;734:42:139::1;;::::0;-1:-1:-1;953:13720:83;;-1:-1:-1;;953:13720:83;1180:170:138;1316:9;;1292:51;;-1:-1:-1;;;1292:51:138;;1266:7;;1292:13;;:23;;:51;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:138:o;14:290:249:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:249;;214:42;;204:70;;270:1;267;260:12;2061:423;2103:3;2141:5;2135:12;2168:6;2163:3;2156:19;2193:1;2203:162;2217:6;2214:1;2211:13;2203:162;;;2279:4;2335:13;;;2331:22;;2325:29;2307:11;;;2303:20;;2296:59;2232:12;2203:162;;;2207:3;2410:1;2403:4;2394:6;2389:3;2385:16;2381:27;2374:38;2473:4;2466:2;2462:7;2457:2;2449:6;2445:15;2441:29;2436:3;2432:39;2428:50;2421:57;;;2061:423;;;;:::o;2489:485::-;2739:10;2734:3;2730:20;2722:6;2718:33;2707:9;2700:52;2788:2;2783;2772:9;2768:18;2761:30;2681:4;2814:45;2855:2;2844:9;2840:18;2832:6;2814:45;:::i;:::-;2907:9;2899:6;2895:22;2890:2;2879:9;2875:18;2868:50;2935:33;2961:6;2953;2935:33;:::i;:::-;2927:41;2489:485;-1:-1:-1;;;;;;2489:485:249:o;2979:184::-;3049:6;3102:2;3090:9;3081:7;3077:23;3073:32;3070:52;;;3118:1;3115;3108:12;3070:52;-1:-1:-1;3141:16:249;;2979:184;-1:-1:-1;2979:184:249:o;:::-;953:13720:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/Conversion.sol":{"Conversion":[{"start":6114,"length":20},{"start":16732,"length":20}]},"src/libraries/Security.sol":{"Security":[{"start":606,"length":20},{"start":5835,"length":20},{"start":7572,"length":20},{"start":7693,"length":20},{"start":8525,"length":20},{"start":8646,"length":20},{"start":10136,"length":20},{"start":10257,"length":20},{"start":13774,"length":20},{"start":14189,"length":20},{"start":15010,"length":20},{"start":15131,"length":20},{"start":16992,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":728,"length":20},{"start":11727,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106104555760003560e01c80638b40da7d11610250578063c414d4f911610150578063dbd55fb3116100c8578063eaca386411610097578063efdcd2c51161007c578063efdcd2c514610ecc578063f61e60f214610edf578063ffbf516314610f1b57600080fd5b8063eaca386414610e88578063ec11384a14610e9057600080fd5b8063dbd55fb314610df5578063e01a56ba14610dfd578063e51a3bab14610e10578063e642ad3414610e4c57600080fd5b8063cf54aaa01161011f578063d15263d311610104578063d15263d314610d41578063d83205c014610d7d578063d88597de14610db957600080fd5b8063cf54aaa014610ce0578063d017d35714610d0557600080fd5b8063c414d4f914610c58578063c5ad787914610c60578063ca6d5e3314610c9c578063ccca891114610cd857600080fd5b8063a2fd43c5116101e3578063aacb7f34116101b2578063b70855fb11610197578063b70855fb14610bd8578063ba9a08d714610c14578063be22fa1e14610c5057600080fd5b8063aacb7f3414610b94578063af895a3b14610b9c57600080fd5b8063a2fd43c514610b3d578063a3043fb814610b45578063a5be606314610b58578063a652cb801461048a57600080fd5b806391b9b8271161021f57806391b9b82714610af157806395789e1c146105325780639d18526414610af95780639e5f854214610b3557600080fd5b80638b40da7d14610a825780638c3e62b614610a8a5780638d7e9e9414610a9257806391aab3e414610ab557600080fd5b80635e2092491161035b578063697e744c116102ee57806379c52aca116102bd5780637d49df3b116102a25780637d49df3b146109ce5780637d95de8e14610a0a5780638b3e047114610a4657600080fd5b806379c52aca146109565780637a25c9d31461099257600080fd5b8063697e744c1461089a5780636a0b3f64146108a2578063724348ab146108de578063739baf491461091a57600080fd5b806361945bfc1161032a57806361945bfc146107aa57806362a4c3df146107e6578063638bf74f14610822578063678df18f1461085e57600080fd5b80635e209249146107225780635e61dc381461072a5780635f39ca2214610732578063608dade91461076e57600080fd5b806326026d18116103ee578063420ea360116103bd57806342ff308b116103a257806342ff308b1461066e578063430c6fe6146106aa57806359dcf3f6146106e657600080fd5b8063420ea360146105f6578063423ac8d91461063257600080fd5b806326026d181461053a578063264c1356146105765780632a0f4d6b146105b25780632d1da17e146105ba57600080fd5b80630e4943321161042a5780630e494332146104ce57806316345f181461050a5780631c22eb861461051d57806325889b221461053257600080fd5b806272e1401461045a578062a9d96e14610475578063057afbfe1461048a578063094d3a34146104c6575b600080fd5b610462610f53565b6040519081526020015b60405180910390f35b61047d610fb8565b60405161046c91906145dd565b61047d6040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b610462610fd4565b61047d6040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b610462610518366004614615565b611005565b61053061052b366004614632565b611093565b005b61046261137f565b61047d6040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b61047d6040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b6104626113b0565b61047d6040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b61047d6040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b61047d6040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b61047d6040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b61047d6040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b61047d6040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b6104626113e1565b61047d611412565b61047d6040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b61047d6040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b61047d6040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b61047d6040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b61047d6040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b61047d6040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b61047d61142e565b61047d6040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b61047d6040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b61047d6040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b61047d6040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b61047d6040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b61047d6040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b61047d6040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b61047d6040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b61046261144a565b61046261147b565b610aa5610aa03660046147ce565b6114ac565b604051901515815260200161046c565b61047d6040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b61046261180d565b61047d6040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b61047d61183e565b61047d61185a565b610530610b53366004614866565b611876565b61047d6040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b61047d611afd565b61047d6040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b61047d6040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b61047d6040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b61047d611b19565b61047d611b35565b61047d6040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b61047d6040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b610462611b51565b610cf3610cee366004614615565b611b82565b60405160ff909116815260200161046c565b61047d6040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b61047d6040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b61047d6040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b61047d6040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b610462611bfe565b610530610e0b366004614866565b611c2f565b61047d6040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b61047d6040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b61047d61225e565b61047d6040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b610530610eda3660046148a5565b61227a565b61047d6040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610f2e610f293660046148fe565b612776565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161046c565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b6040518060600160405280602481526020016152526024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610f80565b60008082905060008173ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190614952565b50505091505061108b81612834565b949350505050565b60006110ef6040518060600160405280602b8152602001615227602b91396040805173ffffffffffffffffffffffffffffffffffffffff871660208201529081018590526060015b6040516020818303038152906040526128ca565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015611180573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526111c691908101906149d2565b6040517fa9363ff900000000000000000000000000000000000000000000000000000000815290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__9063a9363ff9906112199084906004016145dd565b60006040518083038186803b15801561123157600080fd5b505af4158015611245573d6000803e3d6000fd5b5050505060006112558585612982565b905060006112638686612b5e565b9050600061128283608001518361010001518560e0015160ff16612d35565b905060008480602001905181019061129a9190614a1b565b905060006112a9898984612f12565b60e08601516040517fe9db0bb600000000000000000000000000000000000000000000000000000000815260048101839052602481018690526305f5e100604482018190526064820152600a90911860ff16608482015290915060009073__$6f3bb55dcef4043805ff849f911f80739c$__9063e9db0bb69060a401602060405180830381865af4158015611342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113669190614a8a565b9050611373818b8b612f99565b50505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610f80565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610f80565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610f80565b6040518060600160405280602981526020016151b16029913981565b60405180606001604052806023815260200161518e6023913981565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610f80565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610f80565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611545907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e457869737400000000000000000000000084830152825191820186905233928201929092529092506000916115cb916060016110db565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015611659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167d9190614aa3565b61170e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60008830898989600181111561172657611726614ac5565b60405160240161173a959493929190614af4565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b050000000000000000000000000000000000000000000000000000000017905290506118007f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6134a9565b9998505050505050505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610f80565b6040518060600160405280602581526020016151206025913981565b6040518060600160405280602881526020016151456028913981565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156118ef57600080fd5b505af4158015611903573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561196957600080fd5b505af415801561197d573d6000803e3d6000fd5b505050506000806000600760405160200161199a93929190614b51565b6040516020818303038152906040529050600081848760036040516024016119c59493929190614b81565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7b6a4ce6000000000000000000000000000000000000000000000000000000001790528151808301909252601482527f5570646174654c6f616e496e666f416374696f6e00000000000000000000000090820152909150600090611a7f908284816114ac565b905080611ae8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552523a205570646174654c6f616e496e666f416374696f6e206661696c65646044820152606401611705565b611af487878787611c2f565b50505050505050565b6040518060600160405280602b8152602001615227602b913981565b60405180606001604052806021815260200161516d6021913981565b6040518060600160405280602581526020016151da6025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610f80565b6000808290508073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf79190614be8565b9392505050565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610f80565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b158015611ca857600080fd5b505af4158015611cbc573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015611d2257600080fd5b505af4158015611d36573d6000803e3d6000fd5b505050506000611d9960405180606001604052806023815260200161518e602391396040516020016110db9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015611e2a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e4e9190614c0e565b90506000611ea76040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525085886040516020016110db929190918252602082015260400190565b6040517fe2b202bf000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e2b202bf90602401600060405180830381600087803b158015611f3257600080fd5b505af1158015611f46573d6000803e3d6000fd5b505050506000611fa16040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525086896040516020016110db929190918252602082015260400190565b6040517f0e14a376000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690630e14a37690602401600060405180830381600087803b15801561202c57600080fd5b505af1158015612040573d6000803e3d6000fd5b5050505060006120a16040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525060018a6040516020016110db92919060ff929092168252602082015260400190565b905060006121006040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525060018b6040516020016110db92919060ff929092168252602082015260400190565b6040517fe2a4853a00000000000000000000000000000000000000000000000000000000815260048101829052602481018c90529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063e2a4853a90604401600060405180830381600087803b15801561219257600080fd5b505af11580156121a6573d6000803e3d6000fd5b50506040517fca446dd90000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff88811660248301527f000000000000000000000000000000000000000000000000000000000000000016925063ca446dd99150604401600060405180830381600087803b15801561223a57600080fd5b505af115801561224e573d6000803e3d6000fd5b5050505050505050505050505050565b6040518060600160405280602481526020016150fc6024913981565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156122f357600080fd5b505af4158015612307573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810185905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561236d57600080fd5b505af4158015612381573d6000803e3d6000fd5b5050505060006123f46040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525085856040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa158015612485573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124a99190614a8a565b905060006125136040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e49640000000000000000000000000000000000815250876040516020016110db919073ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa1580156125a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125c89190614a8a565b905060006126166040518060600160405280602b8152602001615227602b91396040805173ffffffffffffffffffffffffffffffffffffffff8c1660208201529081018790526060016110db565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa1580156126a7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526126ed91908101906149d2565b90506000818060200190518101906127059190614a1b565b90506000808260400151111561272057506040810151612746565b60808201511561273557506080810151612746565b60c082015115612746575060c08101515b801561275d576127588b888b84613584565b612769565b612769878b8d88611876565b5050505050505050505050565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb906127ed9085903090600401614c2b565b602060405180830381865afa15801561280a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282e9190614c0e565b92915050565b6000808212156128c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603b60248201527f4552523a2043616e6e6f7420636f6e766572742061206e65676174697665206e60448201527f756d62657220746f20616e20756e7369676e6564206e756d62657200000000006064820152608401611705565b5090565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c90612941907f00000000000000000000000000000000000000000000000000000000000000009087908790600401614c63565b602060405180830381865af415801561295e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf79190614a8a565b6129f96040518061010001604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600060ff1681525090565b6000612a686040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525085856040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612af9573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612b3f91908101906149d2565b905080806020019051810190612b559190614cb0565b95945050505050565b612bd960405180610120016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000612c486040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525085856040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015612cd9573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052612d1f91908101906149d2565b905080806020019051810190612b559190614d57565b600080612da56040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525086866040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015612e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5a9190614c0e565b905073ffffffffffffffffffffffffffffffffffffffff8116612eff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a20507269636520466565642041646472657373204e6f7420466f756e60448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401611705565b612f0881611005565b9695505050505050565b60408051600060208083018290528351808403909101815291830183529183015182919015612f545783606001519150612f4f8187876000613946565b612f90565b608084015115612f72578360a001519150612f4f8187876001613946565b60c084015115612f90578360e001519150612f908187876002613946565b50949350505050565b6000612ff860405180606001604052806023815260200161518e602391396040516020016110db9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130ad9190614c0e565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b15801561312957600080fd5b505af415801561313d573d6000803e3d6000fd5b50505050600061314d8585612982565b9050600061315b8686612b5e565b905060006131976040518060600160405280602881526020016151ff6028913983608001518461010001516040516020016110db929190614e26565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613228573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324c9190614c0e565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156132c857600080fd5b505af41580156132dc573d6000803e3d6000fd5b50505060808086015160c0808801516040805173ffffffffffffffffffffffffffffffffffffffff808916602083015294851691810191909152606081018f90529384015290881660a08301526000925001604051602081830303815290604052600061334e8b87608001518c613ac1565b60405160240161336093929190614e48565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ab03673000000000000000000000000000000000000000000000000000000001790528151808301909252600c82527f426f72726f77416374696f6e00000000000000000000000000000000000000009082015290915060009061341a908284816114ac565b905080612769576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a20426f72726f77416374696f6e20657865637574696f6e206661696c60448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401611705565b6000808360018111156134be576134be614ac5565b14806134db575060018360018111156134d9576134d9614ac5565b145b613541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e207479706500000000006044820152606401611705565b600183600181111561355557613555614ac5565b0361356d576000808551602087018986f49050612b55565b600080855160208701888a87f19695505050505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156135fd57600080fd5b505af4158015613611573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810186905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561367757600080fd5b505af415801561368b573d6000803e3d6000fd5b5050505060006136fe6040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525086866040516020016110db92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fbd02d0f50000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063bd02d0f590602401602060405180830381865afa15801561378f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137b39190614a8a565b905060006137c18787612b5e565b60c08101516040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152818101879052805180830382018152606083019091529192506000906138179083908b9087908c90608401614e8a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fe81bdb0d000000000000000000000000000000000000000000000000000000001790528151808301909252601182527f437265617465436c61696d416374696f6e000000000000000000000000000000908201529091506000906138d1908284816114ac565b90508061393a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4552523a20437265617465436c61696d416374696f6e206661696c65640000006044820152606401611705565b6113738a8a898b613c54565b600084848484600381111561395d5761395d614ac5565b6040516024016139709493929190614ecf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8cb32ff0000000000000000000000000000000000000000000000000000000001790528151808301909252601d82527f55706461746550726f74656374696f6e46544d496e666f416374696f6e00000090820152909150600090613a2a908284816114ac565b905080613ab9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f4552523a2075706461746550726f74656374696f6e46696e616e6369616c546560448201527f726d73206661696c6564000000000000000000000000000000000000000000006064820152608401611705565b505050505050565b600080613af5604051806060016040528060288152602001615145602891398686866040516020016110db93929190614f17565b6040517f21f8a721000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa158015613b83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ba79190614c0e565b915073ffffffffffffffffffffffffffffffffffffffff8216613c4c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a205573657220446f6573204e6f74204861766520426c75657072696e60448201527f74000000000000000000000000000000000000000000000000000000000000006064820152608401611705565b509392505050565b6000613c608585612b5e565b90506000613c7c8260c001518361010001518460e00151612d35565b9050600073__$6f3bb55dcef4043805ff849f911f80739c$__63e9db0bb686846305f5e100808860e00151600a613cb391906150a5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e088901b1681526004810195909552602485019390935260448401919091526064830152608482015260a401602060405180830381865af4158015613d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d459190614a8a565b9050611af4818460c00151898660800151888b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810187905273__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b158015613dba57600080fd5b505af4158015613dce573d6000803e3d6000fd5b505050506000613e3160405180606001604052806023815260200161518e602391396040516020016110db9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015613ec2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ee69190614c0e565b9050600087613ef6888887613ac1565b60405173ffffffffffffffffffffffffffffffffffffffff928316602482015290821660448201529083166064820152608481018a905260a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c54de4f000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f5472616e73666572546f6b656e416374696f6e0000000000000000000000000090820152909150600090613fea908284816114ac565b905080614053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a205472616e73666572546f6b656e416374696f6e206661696c6564006044820152606401611705565b611373898b614061896140b1565b6040805173ffffffffffffffffffffffffffffffffffffffff94851660208201529081019290925282166060820152908a16608082015260a0016040516020818303038152906040528887614152565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166321f8a721614134846040516020016110db9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040518263ffffffff1660e01b81526004016127ed91815260200190565b60008060008580602001905181019061416b91906150b1565b9350509250925060006141a36040518060600160405280602481526020016152526024913987866040516020016110db929190614c2b565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015614231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142559190614aa3565b6142e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552523a204e6f7420616e20617070726f76656420636f6c6c61746572616c2060448201527f74797065000000000000000000000000000000000000000000000000000000006064820152608401611705565b8373ffffffffffffffffffffffffffffffffffffffff811663095ea7b3614308858a8a613ac1565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018790526044016020604051808303816000875af115801561437a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061439e9190614aa3565b614404576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4552523a20417070726f7665206661696c6564000000000000000000000000006044820152606401611705565b6000886000614414868b8b613ac1565b60405160240161442693929190614e48565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb12f7774000000000000000000000000000000000000000000000000000000001790528151808301909252600c82527f537570706c79416374696f6e0000000000000000000000000000000000000000908201529091506000906144e0908284816114ac565b905080611373576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a20537570706c79416374696f6e20657865637574696f6e206661696c60448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401611705565b60005b8381101561458a578181015183820152602001614572565b50506000910152565b600081518084526145ab81602086016020860161456f565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611bf76020830184614593565b73ffffffffffffffffffffffffffffffffffffffff8116811461461257600080fd5b50565b60006020828403121561462757600080fd5b8135611bf7816145f0565b6000806040838503121561464557600080fd5b8235614650816145f0565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610100810167ffffffffffffffff811182821017156146b1576146b161465e565b60405290565b604051610120810167ffffffffffffffff811182821017156146b1576146b161465e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156147225761472261465e565b604052919050565b600067ffffffffffffffff8211156147445761474461465e565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600061478361477e8461472a565b6146db565b905082815283838301111561479757600080fd5b828260208301376000602084830101529392505050565b600082601f8301126147bf57600080fd5b611bf783833560208501614770565b600080600080608085870312156147e457600080fd5b843567ffffffffffffffff808211156147fc57600080fd5b614808888389016147ae565b955060208701359450604087013591508082111561482557600080fd5b508501601f8101871361483757600080fd5b61484687823560208401614770565b92505060608501356002811061485b57600080fd5b939692955090935050565b6000806000806080858703121561487c57600080fd5b84359350602085013592506040850135614895816145f0565b9396929550929360600135925050565b6000806000606084860312156148ba57600080fd5b83356148c5816145f0565b925060208401359150604084013567ffffffffffffffff8111156148e857600080fd5b6148f4868287016147ae565b9150509250925092565b60006020828403121561491057600080fd5b813567ffffffffffffffff81111561492757600080fd5b61108b848285016147ae565b805169ffffffffffffffffffff8116811461494d57600080fd5b919050565b600080600080600060a0868803121561496a57600080fd5b61497386614933565b945060208601519350604086015192506060860151915061499660808701614933565b90509295509295909350565b60006149b061477e8461472a565b90508281528383830111156149c457600080fd5b611bf783602083018461456f565b6000602082840312156149e457600080fd5b815167ffffffffffffffff8111156149fb57600080fd5b8201601f81018413614a0c57600080fd5b61108b848251602084016149a2565b60006101008284031215614a2e57600080fd5b614a3661468d565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201528091505092915050565b600060208284031215614a9c57600080fd5b5051919050565b600060208284031215614ab557600080fd5b81518015158114611bf757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60a081526000614b0760a0830188614593565b73ffffffffffffffffffffffffffffffffffffffff871660208401528560408401528281036060840152614b3b8186614593565b91505060ff831660808301529695505050505050565b60ff8481168252831660208201526060810160088310614b7357614b73614ac5565b826040830152949350505050565b608081526000614b946080830187614593565b905073ffffffffffffffffffffffffffffffffffffffff8516602083015283604083015260048310614bc857614bc8614ac5565b82606083015295945050505050565b805160ff8116811461494d57600080fd5b600060208284031215614bfa57600080fd5b611bf782614bd7565b805161494d816145f0565b600060208284031215614c2057600080fd5b8151611bf7816145f0565b604081526000614c3e6040830185614593565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7fffffffff0000000000000000000000000000000000000000000000000000000084168152606060208201526000614c9e6060830185614593565b8281036040840152612f088185614593565b60006101008284031215614cc357600080fd5b614ccb61468d565b82518152602083015160208201526040830151614ce7816145f0565b6040820152606083810151908201526080830151614d04816145f0565b8060808301525060a083015160a082015260c083015160c0820152614d2b60e08401614bd7565b60e08201529392505050565b600082601f830112614d4857600080fd5b611bf7838351602085016149a2565b600060208284031215614d6957600080fd5b815167ffffffffffffffff80821115614d8157600080fd5b908301906101208286031215614d9657600080fd5b614d9e6146b7565b82518152614dae60208401614c03565b60208201526040830151604082015260608301516060820152608083015182811115614dd957600080fd5b614de587828601614d37565b60808301525060a083015160a0820152614e0160c08401614c03565b60c082015260e083810151908201526101009283015192810192909252509392505050565b604081526000614e396040830185614593565b90508260208301529392505050565b606081526000614e5b6060830186614593565b905060ff8416602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b608081526000614e9d6080830187614593565b73ffffffffffffffffffffffffffffffffffffffff959095166020830152506040810192909252606090910152919050565b608081526000614ee26080830187614593565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260ff16606090910152919050565b73ffffffffffffffffffffffffffffffffffffffff84168152606060208201526000614f466060830185614593565b9050826040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600181815b80851115614fde57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614fc457614fc4614f56565b80851615614fd157918102915b93841c9390800290614f8a565b509250929050565b600082614ff55750600161282e565b816150025750600061282e565b816001811461501857600281146150225761503e565b600191505061282e565b60ff84111561503357615033614f56565b50506001821b61282e565b5060208310610133831016604e8410600b8410161715615061575081810a61282e565b61506b8383614f85565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561509d5761509d614f56565b029392505050565b6000611bf78383614fe6565b600080600080608085870312156150c757600080fd5b84516150d2816145f0565b6020860151604087015191955093506150ea816145f0565b606086015190925061485b816145f056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c6572416464726573732e4c656e6465724e616d652e436861696e49642e4d61726b65744164647265737350726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"953:13720:83:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:93:107;;;:::i;:::-;;;160:25:249;;;148:2;133:18;905:93:107;;;;;;;;4313:101:137;;;:::i;:::-;;;;;;;:::i;3382:80::-;;;;;;;;;;;;;;;;;;;;;812:87:107;;;:::i;560:76:137:-;;;;;;;;;;;;;;;;;;;;;605:317:142;;;;;;:::i;:::-;;:::i;6479:1283:83:-;;;;;;:::i;:::-;;:::i;:::-;;1119:106:107;;;:::i;3124:78:137:-;;;;;;;;;;;;;;;;;;;;;3825:74;;;;;;;;;;;;;;;;;;;;;477:107:107;;;:::i;1749:93:137:-;;;;;;;;;;;;;;;;;;;;;1935:72;;;;;;;;;;;;;;;;;;;;;2407:70;;;;;;;;;;;;;;;;;;;;;278:76;;;;;;;;;;;;;;;;;;;;;2700:77;;;;;;;;;;;;;;;;;;;;;1848:81;;;;;;;;;;;;;;;;;;;;;374:97:107;;;:::i;3637:88:137:-;;;:::i;2314:87::-;;;;;;;;;;;;;;;;;;;;;3468:88;;;;;;;;;;;;;;;;;;;;;1068:85;;;;;;;;;;;;;;;;;;;;;1275:75;;;;;;;;;;;;;;;;;;;;;142:62;;;;;;;;;;;;;;;;;;;;;898:83;;;;;;;;;;;;;;;;;;;;;2947:87;;;:::i;3040:78::-;;;;;;;;;;;;;;;;;;;;;3932:58;;;;;;;;;;;;;;;;;;;;;1662:81;;;;;;;;;;;;;;;;;;;;;4138:68;;;;;;;;;;;;;;;;;;;;;2208:71;;;;;;;;;;;;;;;;;;;;;987:75;;;;;;;;;;;;;;;;;;;;;745:66;;;;;;;;;;;;;;;;;;;;;3208:76;;;;;;;;;;;;;;;;;;;;;703:103:107;;;:::i;273:95::-;;;:::i;1000:637:139:-;;;;;;:::i;:::-;;:::i;:::-;;;4859:14:249;;4852:22;4834:41;;4822:2;4807:18;1000:637:139;4694:187:249;210:62:137;;;;;;;;;;;;;;;;;;;;;176:91:107;;;:::i;817:75:137:-;;;;;;;;;;;;;;;;;;;;;3731:88;;;:::i;2585:109::-;;;:::i;10383:716:83:-;;;;;;:::i;:::-;;:::i;3996:60:137:-;;;;;;;;;;;;;;;;;;;;;1523:105;;;:::i;4616:78::-;;;;;;;;;;;;;;;;;;;;;1189:80;;;;;;;;;;;;;;;;;;;;;2097:72;;;;;;;;;;;;;;;;;;;;;2483:96;;;:::i;4478:::-;;;:::i;4062:70::-;;;;;;;;;;;;;;;;;;;;;360:80;;;;;;;;;;;;;;;;;;;;;590:107:107;;;:::i;1127:204:142:-;;;;;;:::i;:::-;;:::i;:::-;;;5515:4:249;5503:17;;;5485:36;;5473:2;5458:18;1127:204:142;5343:184:249;2783:70:137;;;;;;;;;;;;;;;;;;;;;1452:65;;;;;;;;;;;;;;;;;;;;;642:73;;;;;;;;;;;;;;;;;;;;;3562:69;;;;;;;;;;;;;;;;;;;;;1231:87:107;;;:::i;11105:951:83:-;;;;;;:::i;:::-;;:::i;2859:82:137:-;;;;;;;;;;;;;;;;;;;;;2013:78;;;;;;;;;;;;;;;;;;;;;1356:90;;;:::i;489:65::-;;;;;;;;;;;;;;;;;;;;;1253:1491:83;;;;;;:::i;:::-;;:::i;4212:69:137:-;;;;;;;;;;;;;;;;;;;;;822:172:139;;;;;;:::i;:::-;;:::i;:::-;;;6565:42:249;6553:55;;;6535:74;;6523:2;6508:18;822:172:139;6389:226:249;905:93:107;966:29;;6834:11:249;966:29:107;;;6822:24:249;6862:11;;966:29:107;;;;;;;;;;;;;956:40;;;;;;941:57;;;905:93;:::o;4313:101:137:-;;;;;;;;;;;;;;;;;;;:::o;812:87:107:-;870:26;;7098:8:249;870:26:107;;;7086:21:249;7123:11;;870:26:107;6884:256:249;605:317:142;677:7;696:31;752:17;696:74;;833:13;853:9;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;830:50;;;;;;897:18;908:6;897:10;:18::i;:::-;890:25;605:317;-1:-1:-1;;;;605:317:142:o;6479:1283:83:-;6553:11;6567:73;6577:34;;;;;;;;;;;;;;;;;6613:26;;;8011:42:249;7999:55;;6613:26:83;;;7981:74:249;8071:18;;;8064:34;;;7954:18;;6613:26:83;;;;;;;;;;;;;6567:9;:73::i;:::-;6694:29;;;;;;;;160:25:249;;;6553:87:83;;-1:-1:-1;6650:41:83;;6694:24;:15;:24;;;;133:18:249;;6694:29:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6733:52;;;;;6650:73;;-1:-1:-1;6733:8:83;;:22;;:52;;6650:73;;6733:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6795:41;6839:29;6853:5;6860:7;6839:13;:29::i;:::-;6795:73;;6878:41;6922:29;6936:5;6943:7;6922:13;:29::i;:::-;6878:73;;6976:24;7019:94;7035:13;:30;;;7067:13;:21;;;7090:13;:22;;;7019:94;;:15;:94::i;:::-;6976:137;;7127:68;7225:28;7214:80;;;;;;;;;;;;:::i;:::-;7127:167;;7309:18;7330:64;7353:5;7360:7;7369:24;7330:22;:64::i;:::-;7648:22;;;;7430:255;;;;;;;;10113:25:249;;;10154:18;;;10147:34;;;569:3:154;10197:18:249;;;10190:34;;;10240:18;;;10233:34;7642:2:83;:29;;;10316:4:249;10304:17;10283:19;;;10276:46;10113:25;;-1:-1:-1;;;7430:10:83;;:48;;10085:19:249;;7430:255:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7408:277;;7700:45;7717:11;7730:5;7737:7;7700:16;:45::i;:::-;6962:794;;;;6543:1219;;;;6479:1283;;:::o;1119:106:107:-;1185:37;;10736:19:249;1185:37:107;;;10724:32:249;10772:12;;1185:37:107;10522:268:249;477:107:107;545:36;;11009:18:249;545:36:107;;;10997:31:249;11044:12;;545:36:107;10795:267:249;374:97:107;435:33;;11281:15:249;435:33:107;;;11269:28:249;11313:12;;435:33:107;11067:264:249;3637:88:137;;;;;;;;;;;;;;;;;;;:::o;2947:87::-;;;;;;;;;;;;;;;;;;;:::o;703:103:107:-;769:34;;11550:16:249;769:34:107;;;11538:29:249;11583:12;;769:34:107;11336:265:249;273:95:107;335:30;;11820:12:249;335:30:107;;;11808:25:249;11849:12;;335:30:107;11606:261:249;1000:637:139;1073:37:107;;10736:19:249;1073:37:107;;;10724:32:249;1230:12:139;;10772::249;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;12086:10:249;12074:23;;12122:1;12113:11;;11872:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;12309:25:249;;;795:10:108;12350:18:249;;;12343:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;12282:18:249;;777:29:108;12135:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;12921:2:249;817:84:108;;;12903:21:249;12960:2;12940:18;;;12933:30;12999:34;12979:18;;;12972:62;13070:3;13050:18;;;13043:31;13091:19;;817:84:108;;;;;;;;;1258:24:139::1;1398:11;1431:4;1450:6;1470:5;1495:10;1489:17;;;;;;;;:::i;:::-;1285:231;;;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;;;::::0;;;-1:-1:-1;1536:94:139::1;1552:20;-1:-1:-1::0;1285:231:139;-1:-1:-1;1612:17:139::1;1536:7;:94::i;:::-;1526:104:::0;1000:637;-1:-1:-1;;;;;;;;;1000:637:139:o;176:91:107:-;236:28;;12086:10:249;236:28:107;;;12074:23:249;12113:11;;236:28:107;11872:258:249;3731:88:137;;;;;;;;;;;;;;;;;;;:::o;2585:109::-;;;;;;;;;;;;;;;;;;;:::o;10383:716:83:-;10502:31;;;;;6565:42:249;6553:55;;10502:31:83;;;6535:74:249;10502:8:83;;:24;;6508:18:249;;10502:31:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10543:30:83;;;;;;;;160:25:249;;;10543:8:83;;-1:-1:-1;10543:21:83;;-1:-1:-1;133:18:249;;10543:30:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10583:23;10620:1;10623;10626:28;10609:46;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;10583:72;;10665:27;10779:10;10791:5;10798:7;10807:21;10695:143;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;10863:94;;;;;;;;;;;;;;;;10695:143;;-1:-1:-1;;;10863:94:83;;-1:-1:-1;10695:143:83;-1:-1:-1;10863:24:83;:94::i;:::-;10848:109;;10975:7;10967:52;;;;;;;15585:2:249;10967:52:83;;;15567:21:249;;;15604:18;;;15597:30;15663:34;15643:18;;;15636:62;15715:18;;10967:52:83;15383:356:249;10967:52:83;11029:63;11052:7;11061:9;11072:5;11079:12;11029:22;:63::i;:::-;10492:607;;;10383:716;;;;:::o;1523:105:137:-;;;;;;;;;;;;;;;;;;;:::o;2483:96::-;;;;;;;;;;;;;;;;;;;:::o;4478:::-;;;;;;;;;;;;;;;;;;;:::o;590:107:107:-;658:36;;15958:18:249;658:36:107;;;15946:31:249;15993:12;;658:36:107;15744:267:249;1127:204:142;1196:5;1213:31;1269:17;1213:74;;1304:9;:18;;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1297:27;1127:204;-1:-1:-1;;;1127:204:142:o;1231:87:107:-;1289:26;;16604:8:249;1289:26:107;;;16592:21:249;16629:11;;1289:26:107;16390:256:249;11105:951:83;11227:31;;;;;6565:42:249;6553:55;;11227:31:83;;;6535:74:249;11227:8:83;;:24;;6508:18:249;;11227:31:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11268:32:83;;;;;;;;160:25:249;;;11268:8:83;;-1:-1:-1;11268:21:83;;-1:-1:-1;133:18:249;;11268:32:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11310:20;11333:52;11343:24;;;;;;;;;;;;;;;;;11369:15;;;;;;16853:2:249;16835:21;;;16892:1;16872:18;;;16865:29;16930:3;16925:2;16910:18;;16903:31;16966:2;16951:18;;16651:324;11333:52:83;11422:40;;;;;;;;160:25:249;;;11310:75:83;;-1:-1:-1;11395:24:83;;11422:26;:15;:26;;;;133:18:249;;11422:40:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11395:67;;11472:11;11486:75;11496:27;;;;;;;;;;;;;;;;;11536:12;11550:9;11525:35;;;;;;;;17553:25:249;;;17609:2;17594:18;;17587:34;17541:2;17526:18;;17379:248;11486:75:83;11571:31;;;;;;;;160:25:249;;;11472:89:83;;-1:-1:-1;11571:15:83;:26;;;;;133:18:249;;11571:31:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11612:12;11627:73;11637:25;;;;;;;;;;;;;;;;;11675:12;11689:9;11664:35;;;;;;;;17553:25:249;;;17609:2;17594:18;;17587:34;17541:2;17526:18;;17379:248;11627:73:83;11710:35;;;;;;;;160:25:249;;;11612:88:83;;-1:-1:-1;11710:15:83;:29;;;;;133:18:249;;11710:35:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11755:15;11773:62;11783:25;;;;;;;;;;;;;;;;;11821:1;11824:9;11810:24;;;;;;;;17842:4:249;17830:17;;;;17812:36;;17879:2;17864:18;;17857:34;17800:2;17785:18;;17632:265;11773:62:83;11755:80;;11845:19;11867:64;11877:27;;;;;;;;;;;;;;;;;11917:1;11920:9;11906:24;;;;;;;;17842:4:249;17830:17;;;;17812:36;;17879:2;17864:18;;17857:34;17800:2;17785:18;;17632:265;11867:64:83;11941:45;;;;;;;;17553:25:249;;;17594:18;;;17587:34;;;11845:86:83;;-1:-1:-1;11941:15:83;:23;;;;;17526:18:249;;11941:45:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11996:53:83;;;;;;;;12309:25:249;;;11996:26:83;12370:55:249;;;12350:18;;;12343:83;11996:15:83;:26;;-1:-1:-1;11996:26:83;;-1:-1:-1;12282:18:249;;11996:53:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11217:839;;;;;;11105:951;;;;:::o;1356:90:137:-;;;;;;;;;;;;;;;;;;;:::o;1253:1491:83:-;1348:31;;;;;6565:42:249;6553:55;;1348:31:83;;;6535:74:249;1348:8:83;;:24;;6508:18:249;;1348:31:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1389:32:83;;;;;;;;160:25:249;;;1389:8:83;;-1:-1:-1;1389:21:83;;-1:-1:-1;133:18:249;;1389:32:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:15;1450:61;1460:20;;;;;;;;;;;;;;;;;1493:5;1500:9;1482:28;;;;;;;;8011:42:249;7999:55;;;;7981:74;;8086:2;8071:18;;8064:34;7969:2;7954:18;;7807:297;1450:61:83;1539:32;;;;;;;;160:25:249;;;1432:79:83;;-1:-1:-1;1521:15:83;;1539:23;:15;:23;;;;133:18:249;;1539:32:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1521:50;;1581:20;1604:49;1614:19;;;;;;;;;;;;;;;;;1646:5;1635:17;;;;;;;6565:42:249;6553:55;;;;6535:74;;6523:2;6508:18;;6389:226;1604:49:83;1686:37;;;;;;;;160:25:249;;;1581:72:83;;-1:-1:-1;1663:20:83;;1686:23;:15;:23;;;;133:18:249;;1686:37:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1663:60;;1733:11;1747:73;1757:34;;;;;;;;;;;;;;;;;1793:26;;;8011:42:249;7999:55;;1793:26:83;;;7981:74:249;8071:18;;;8064:34;;;7954:18;;1793:26:83;7807:297:249;1747:73:83;1874:29;;;;;;;;160:25:249;;;1733:87:83;;-1:-1:-1;1830:41:83;;1874:24;:15;:24;;;;133:18:249;;1874:29:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1830:73;;1914:68;2008:28;1997:80;;;;;;;;;;;;:::i;:::-;1914:163;;2087:21;2170:1;2126:24;:41;;;:45;2122:415;;;-1:-1:-1;2203:41:83;;;;2122:415;;;2265:41;;;;:45;2261:276;;-1:-1:-1;2342:41:83;;;;2261:276;;;2404:43;;;;:47;2400:137;;-1:-1:-1;2483:43:83;;;;2400:137;2551:17;;2547:191;;2584:52;2596:5;2603:7;2612:8;2622:13;2584:11;:52::i;:::-;2547:191;;;2667:60;2687:7;2696:9;2707:5;2714:12;2667:19;:60::i;:::-;1338:1406;;;;;;;;1253:1491;;;:::o;822:172:139:-;922:65;;;;;896:7;;922:37;:20;:37;;;;:65;;960:11;;981:4;;922:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;915:72;822:172;-1:-1:-1;;822:172:139:o;1429:183:142:-;1481:7;1513:1;1508;:6;;1500:78;;;;;;;18702:2:249;1500:78:142;;;18684:21:249;18741:2;18721:18;;;18714:30;18780:34;18760:18;;;18753:62;18851:29;18831:18;;;18824:57;18898:19;;1500:78:142;18500:423:249;1500:78:142;-1:-1:-1;1603:1:142;1429:183::o;1180:170:138:-;1292:51;;;;;1266:7;;1292:13;;:23;;:51;;1316:9;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;12062:340:83:-;12139:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12139:27:83;12178:11;12192:63;12202:24;;;;;;;;;;;;;;;;;12239:5;12246:7;12228:26;;;;;;;;8011:42:249;7999:55;;;;7981:74;;8086:2;8071:18;;8064:34;7969:2;7954:18;;7807:297;12192:63:83;12297:29;;;;;;;;160:25:249;;;12178:77:83;;-1:-1:-1;12265:29:83;;12297:24;:15;:24;;;;133:18:249;;12297:29:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12265:61;;12354:16;12343:52;;;;;;;;;;;;:::i;:::-;12336:59;12062:340;-1:-1:-1;;;;;12062:340:83:o;12408:344::-;12485:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12485:27:83;12524:11;12538:67;12548:28;;;;;;;;;;;;;;;;;12589:5;12596:7;12578:26;;;;;;;;8011:42:249;7999:55;;;;7981:74;;8086:2;8071:18;;8064:34;7969:2;7954:18;;7807:297;12538:67:83;12647:29;;;;;;;;160:25:249;;;12524:81:83;;-1:-1:-1;12615:29:83;;12647:24;:15;:24;;;;133:18:249;;12647:29:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12615:61;;12704:16;12693:52;;;;;;;;;;;;:::i;13457:500::-;13610:14;13640:11;13654:68;13664:29;;;;;;;;;;;;;;;;;13706:6;13714;13695:26;;;;;;;;8011:42:249;7999:55;;;;7981:74;;8086:2;8071:18;;8064:34;7969:2;7954:18;;7807:297;13654:68:83;13759:31;;;;;;;;160:25:249;;;13640:82:83;;-1:-1:-1;13732:24:83;;13759:26;:15;:26;;;;133:18:249;;13759:31:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13732:58;-1:-1:-1;13808:30:83;;;13800:76;;;;;;;22092:2:249;13800:76:83;;;22074:21:249;22131:2;22111:18;;;22104:30;22170:34;22150:18;;;22143:62;22241:3;22221:18;;;22214:31;22262:19;;13800:76:83;21890:397:249;13800:76:83;13895:32;13910:16;13895:14;:32::i;:::-;13886:41;13457:500;-1:-1:-1;;;;;;13457:500:83:o;7768:1195::-;8040:13;;;7965:7;8040:13;;;;5485:36:249;;;8040:13:83;;;;;;;;;;5458:18:249;;;8040:13:83;;8067:41;;;;7965:7;;8040:13;8067:46;8063:867;;8142:24;:38;;;8129:51;;8194:141;8243:4;8249:5;8256:7;8265:56;8194:31;:141::i;:::-;8063:867;;;8356:41;;;;:46;8352:578;;8431:24;:38;;;8418:51;;8483:141;8532:4;8538:5;8545:7;8554:56;8483:31;:141::i;8352:578::-;8645:43;;;;:48;8641:289;;8722:24;:40;;;8709:53;;8776:143;8825:4;8831:5;8838:7;8847:58;8776:31;:143::i;:::-;-1:-1:-1;8946:10:83;7768:1195;-1:-1:-1;;;;7768:1195:83:o;8969:1298::-;9069:22;9094:52;9104:24;;;;;;;;;;;;;;;;;9130:15;;;;;;16853:2:249;16835:21;;;16892:1;16872:18;;;16865:29;16930:3;16925:2;16910:18;;16903:31;16966:2;16951:18;;16651:324;9094:52:83;9185:42;;;;;;;;160:25:249;;;9069:77:83;;-1:-1:-1;9156:26:83;;9185;:15;:26;;;;133:18:249;;9185:42:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9237:44;;;;;6565:42:249;6553:55;;9237:44:83;;;6535:74:249;9156:71:83;;-1:-1:-1;9237:8:83;;:24;;6508:18:249;;9237:44:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9291:41;9335:33;9349:9;9360:7;9335:13;:33::i;:::-;9291:77;;9378:41;9422:33;9436:9;9447:7;9422:13;:33::i;:::-;9378:77;;9465:11;9479:132;;;;;;;;;;;;;;;;;;9557:13;:20;;;9579:13;:21;;;9546:55;;;;;;;;;:::i;9479:132::-;9645:31;;;;;;;;160:25:249;;;9465:146:83;;-1:-1:-1;9621:21:83;;9645:26;:15;:26;;;;133:18:249;;9645:31:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9686:39;;;;;6565:42:249;6553:55;;9686:39:83;;;6535:74:249;9621:55:83;;-1:-1:-1;9686:8:83;;:24;;6508:18:249;;9686:39:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9887:30:83;;;;;9931:22;;;;;9844:143;;;23056:42:249;23125:15;;;9844:143:83;;;23107:34:249;23177:15;;;23157:18;;;23150:43;;;;-1:-1:-1;23209:18:249;;23202:34;;;23252:18;;;23245:34;23316:15;;;-1:-1:-1;23295:19:249;;23288:44;9736:23:83;;-1:-1:-1;23018:19:249;9844:143:83;;;;;;;;;;;;10001:1;10024:60;10043:9;10054:13;:20;;;10076:7;10024:18;:60::i;:::-;9762:333;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;10120:76;;;;;;;;;;;;;;;;9762:333;;-1:-1:-1;;;10120:76:83;;-1:-1:-1;9762:333:83;-1:-1:-1;10120:24:83;:76::i;:::-;10105:91;;10214:7;10206:54;;;;;;;23976:2:249;10206:54:83;;;23958:21:249;24015:2;23995:18;;;23988:30;24054:34;24034:18;;;24027:62;24125:4;24105:18;;;24098:32;24147:19;;10206:54:83;23774:398:249;519:822:101;708:12;;757:10;:33;;;;;;;;:::i;:::-;;:78;;;-1:-1:-1;808:27:101;794:10;:41;;;;;;;;:::i;:::-;;757:78;736:152;;;;;;;24379:2:249;736:152:101;;;24361:21:249;24418:2;24398:18;;;24391:30;24457:29;24437:18;;;24430:57;24504:18;;736:152:101;24177:351:249;736:152:101;916:27;902:10;:41;;;;;;;;:::i;:::-;;898:437;;1111:1;1108;1100:5;1094:12;1087:4;1080:5;1076:16;1071:3;1063:6;1050:63;1039:74;;898:437;;;1309:1;1306;1298:5;1292:12;1285:4;1278:5;1274:16;1266:6;1261:3;1253:6;1248:63;1237:74;519:822;-1:-1:-1;;;;;;519:822:101:o;2750:953:83:-;2869:31;;;;;6565:42:249;6553:55;;2869:31:83;;;6535:74:249;2869:8:83;;:24;;6508:18:249;;2869:31:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2910:30:83;;;;;;;;160:25:249;;;2910:8:83;;-1:-1:-1;2910:21:83;;-1:-1:-1;133:18:249;;2910:30:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2950:21;2974:59;2984:20;;;;;;;;;;;;;;;;;3017:5;3024:7;3006:26;;;;;;;;8011:42:249;7999:55;;;;7981:74;;8086:2;8071:18;;8064:34;7969:2;7954:18;;7807:297;2974:59:83;3067:38;;;;;;;;160:25:249;;;2950:83:83;;-1:-1:-1;3043:21:83;;3067:23;:15;:23;;;;133:18:249;;3067:38:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3043:62;;3115:41;3159:29;3173:5;3180:7;3159:13;:29::i;:::-;3234:31;;;;3223:59;;;8011:42:249;7999:55;;;3223:59:83;;;7981:74:249;8071:18;;;8064:34;;;3223:59:83;;;;;;;;;7954:18:249;;;3223:59:83;;;3234:31;;-1:-1:-1;;;3323:133:83;;3223:59;;3417:5;;3424:13;;3439:7;;3323:133;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;3481:86;;;;;;;;;;;;;;;;3323:133;;-1:-1:-1;;;3481:86:83;;-1:-1:-1;3323:133:83;-1:-1:-1;3481:24:83;:86::i;:::-;3466:101;;3585:7;3577:49;;;;;;;25222:2:249;3577:49:83;;;25204:21:249;25261:2;25241:18;;;25234:30;25300:31;25280:18;;;25273:59;25349:18;;3577:49:83;25020:353:249;3577:49:83;3636:60;3655:5;3662:7;3671:14;3687:8;3636:18;:60::i;13963:708::-;14199:27;14341:15;14370:5;14389:7;14416:25;14410:32;;;;;;;;:::i;:::-;14229:223;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;14489:103;;;;;;;;;;;;;;;;14229:223;;-1:-1:-1;;;14489:103:83;;-1:-1:-1;14229:223:83;-1:-1:-1;14489:24:83;:103::i;:::-;14462:130;;14610:7;14602:62;;;;;;;26074:2:249;14602:62:83;;;26056:21:249;26113:2;26093:18;;;26086:30;26152:34;26132:18;;;26125:62;26223:12;26203:18;;;26196:40;26253:19;;14602:62:83;25872:406:249;14602:62:83;14189:482;;13963:708;;;;:::o;12965:486::-;13128:21;13165:11;13179:93;13189:41;;;;;;;;;;;;;;;;;13243:5;13250:11;13263:7;13232:39;;;;;;;;;;:::i;13179:93::-;13299:31;;;;;;;;160:25:249;;;13165:107:83;;-1:-1:-1;13299:15:83;:26;;;;;133:18:249;;13299:31:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13283:47;-1:-1:-1;13348:27:83;;;13340:73;;;;;;;26901:2:249;13340:73:83;;;26883:21:249;26940:2;26920:18;;;26913:30;26979:34;26959:18;;;26952:62;27050:3;27030:18;;;27023:31;27071:19;;13340:73:83;26699:397:249;13340:73:83;13424:20;12965:486;;;;;:::o;3709:789::-;3885:41;3929:29;3943:5;3950:7;3929:13;:29::i;:::-;3885:73;;3968:24;4007:95;4023:13;:31;;;4056:13;:21;;;4079:13;:22;;;4007:15;:95::i;:::-;3968:134;;4112:19;4134:10;:48;4196:14;4224:16;569:3:154;514;4337:13:83;:22;;;4330:2;:30;;;;:::i;:::-;4134:236;;;;;;;;;;;;;29051:25:249;;;;29092:18;;;29085:34;;;;29135:18;;;29128:34;;;;29178:18;;;29171:34;29221:19;;;29214:35;29023:19;;4134:236:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4112:258;;4380:111;4398:11;4411:13;:31;;;4444:5;4451:13;:20;;;4473:8;4483:7;4730:29;;;;;;;;160:25:249;;;4730:8:83;;:21;;133:18:249;;4730:29:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4769:22;4794:52;4804:24;;;;;;;;;;;;;;;;;4830:15;;;;;;16853:2:249;16835:21;;;16892:1;16872:18;;;16865:29;16930:3;16925:2;16910:18;;16903:31;16966:2;16951:18;;16651:324;4794:52:83;4885:42;;;;;;;;160:25:249;;;4769:77:83;;-1:-1:-1;4856:26:83;;4885;:15;:26;;;;133:18:249;;4885:42:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4856:71;;4937:25;5064:6;5092:47;5111:5;5118:11;5131:7;5092:18;:47::i;:::-;4965:237;;29517:42:249;29586:15;;;4965:237:83;;;29568:34:249;29638:15;;;29618:18;;;29611:43;29690:15;;;29670:18;;;29663:43;29722:18;;;29715:34;;;29479:19;;4965:237:83;;;;;;;;;;;;;;;;;;;;;;;;;5227:85;;;;;;;;;;;;;;;;4965:237;;-1:-1:-1;;;5227:85:83;;-1:-1:-1;4965:237:83;-1:-1:-1;5227:24:83;:85::i;:::-;5212:100;;5330:7;5322:51;;;;;;;29962:2:249;5322:51:83;;;29944:21:249;30001:2;29981:18;;;29974:30;30040:33;30020:18;;;30013:61;30091:18;;5322:51:83;29760:355:249;5322:51:83;5383:110;5409:6;5417;5433:28;5452:8;5433:18;:28::i;:::-;5398:72;;;30361:42:249;30430:15;;;5398:72:83;;;30412:34:249;30462:18;;;30455:34;;;;30525:15;;30505:18;;;30498:43;30577:15;;;30557:18;;;30550:43;30323:19;;5398:72:83;;;;;;;;;;;;5472:11;5485:7;5383:14;:110::i;12758:201::-;12832:21;12888:15;:26;;;12915:36;12925:8;12935:15;;;;;;16853:2:249;16835:21;;;16892:1;16872:18;;;16865:29;16930:3;16925:2;16910:18;;16903:31;16966:2;16951:18;;16651:324;12915:36:83;12888:64;;;;;;;;;;;;;160:25:249;;148:2;133:18;;14:177;5506:967:83;5619:23;5644:14;5661:12;5700:11;5689:61;;;;;;;;;;;;:::i;:::-;5618:132;;;;;;;5760:11;5774:90;5784:37;;;;;;;;;;;;;;;;;5834:11;5847:15;5823:40;;;;;;;;;:::i;5774:90::-;5882:28;;;;;;;;160:25:249;;;5760:104:83;;-1:-1:-1;5882:15:83;:23;;;;;133:18:249;;5882:28:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5874:77;;;;;;;31416:2:249;5874:77:83;;;31398:21:249;31455:2;31435:18;;;31428:30;31494:34;31474:18;;;31467:62;31565:6;31545:18;;;31538:34;31589:19;;5874:77:83;31214:400:249;5874:77:83;5983:15;6018:13;;;;6040:46;6059:4;6065:11;6078:7;6040:18;:46::i;:::-;6018:78;;;;;;;;;;8011:42:249;7999:55;;;6018:78:83;;;7981:74:249;8071:18;;;8064:34;;;7954:18;;6018:78:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6010:110;;;;;;;31821:2:249;6010:110:83;;;31803:21:249;31860:2;31840:18;;;31833:30;31899:21;31879:18;;;31872:49;31938:18;;6010:110:83;31619:343:249;6010:110:83;6130:20;6223:11;6236:1;6247:46;6266:4;6272:11;6285:7;6247:18;:46::i;:::-;6153:151;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;6329:73;;;;;;;;;;;;;;;;6153:151;;-1:-1:-1;;;6329:73:83;;-1:-1:-1;6153:151:83;-1:-1:-1;6329:24:83;:73::i;:::-;6314:88;;6420:7;6412:54;;;;;;;32169:2:249;6412:54:83;;;32151:21:249;32208:2;32188:18;;;32181:30;32247:34;32227:18;;;32220:62;32318:4;32298:18;;;32291:32;32340:19;;6412:54:83;31967:398:249;196:250;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:249;420:16;;413:27;196:250::o;451:330::-;493:3;531:5;525:12;558:6;553:3;546:19;574:76;643:6;636:4;631:3;627:14;620:4;613:5;609:16;574:76;:::i;:::-;695:2;683:15;700:66;679:88;670:98;;;;770:4;666:109;;451:330;-1:-1:-1;;451:330:249:o;786:220::-;935:2;924:9;917:21;898:4;955:45;996:2;985:9;981:18;973:6;955:45;:::i;1011:154::-;1097:42;1090:5;1086:54;1079:5;1076:65;1066:93;;1155:1;1152;1145:12;1066:93;1011:154;:::o;1170:247::-;1229:6;1282:2;1270:9;1261:7;1257:23;1253:32;1250:52;;;1298:1;1295;1288:12;1250:52;1337:9;1324:23;1356:31;1381:5;1356:31;:::i;1604:315::-;1672:6;1680;1733:2;1721:9;1712:7;1708:23;1704:32;1701:52;;;1749:1;1746;1739:12;1701:52;1788:9;1775:23;1807:31;1832:5;1807:31;:::i;:::-;1857:5;1909:2;1894:18;;;;1881:32;;-1:-1:-1;;;1604:315:249:o;1924:184::-;1976:77;1973:1;1966:88;2073:4;2070:1;2063:15;2097:4;2094:1;2087:15;2113:252;2185:2;2179:9;2227:3;2215:16;;2261:18;2246:34;;2282:22;;;2243:62;2240:88;;;2308:18;;:::i;:::-;2344:2;2337:22;2113:252;:::o;2370:255::-;2442:2;2436:9;2484:6;2472:19;;2521:18;2506:34;;2542:22;;;2503:62;2500:88;;;2568:18;;:::i;2630:334::-;2701:2;2695:9;2757:2;2747:13;;2762:66;2743:86;2731:99;;2860:18;2845:34;;2881:22;;;2842:62;2839:88;;;2907:18;;:::i;:::-;2943:2;2936:22;2630:334;;-1:-1:-1;2630:334:249:o;2969:246::-;3018:4;3051:18;3043:6;3040:30;3037:56;;;3073:18;;:::i;:::-;-1:-1:-1;3130:2:249;3118:15;3135:66;3114:88;3204:4;3110:99;;2969:246::o;3220:338::-;3285:5;3314:53;3330:36;3359:6;3330:36;:::i;:::-;3314:53;:::i;:::-;3305:62;;3390:6;3383:5;3376:21;3430:3;3421:6;3416:3;3412:16;3409:25;3406:45;;;3447:1;3444;3437:12;3406:45;3496:6;3491:3;3484:4;3477:5;3473:16;3460:43;3550:1;3543:4;3534:6;3527:5;3523:18;3519:29;3512:40;3220:338;;;;;:::o;3563:222::-;3606:5;3659:3;3652:4;3644:6;3640:17;3636:27;3626:55;;3677:1;3674;3667:12;3626:55;3699:80;3775:3;3766:6;3753:20;3746:4;3738:6;3734:17;3699:80;:::i;3790:899::-;3910:6;3918;3926;3934;3987:3;3975:9;3966:7;3962:23;3958:33;3955:53;;;4004:1;4001;3994:12;3955:53;4044:9;4031:23;4073:18;4114:2;4106:6;4103:14;4100:34;;;4130:1;4127;4120:12;4100:34;4153:50;4195:7;4186:6;4175:9;4171:22;4153:50;:::i;:::-;4143:60;;4250:2;4239:9;4235:18;4222:32;4212:42;;4307:2;4296:9;4292:18;4279:32;4263:48;;4336:2;4326:8;4323:16;4320:36;;;4352:1;4349;4342:12;4320:36;-1:-1:-1;4375:24:249;;4430:4;4422:13;;4418:27;-1:-1:-1;4408:55:249;;4459:1;4456;4449:12;4408:55;4482:74;4548:7;4543:2;4530:16;4525:2;4521;4517:11;4482:74;:::i;:::-;4472:84;;;4606:2;4595:9;4591:18;4578:32;4639:1;4632:5;4629:12;4619:40;;4655:1;4652;4645:12;4619:40;3790:899;;;;-1:-1:-1;3790:899:249;;-1:-1:-1;;3790:899:249:o;4886:452::-;4972:6;4980;4988;4996;5049:3;5037:9;5028:7;5024:23;5020:33;5017:53;;;5066:1;5063;5056:12;5017:53;5102:9;5089:23;5079:33;;5159:2;5148:9;5144:18;5131:32;5121:42;;5213:2;5202:9;5198:18;5185:32;5226:31;5251:5;5226:31;:::i;:::-;4886:452;;;;-1:-1:-1;5276:5:249;;5328:2;5313:18;5300:32;;-1:-1:-1;;4886:452:249:o;5532:525::-;5619:6;5627;5635;5688:2;5676:9;5667:7;5663:23;5659:32;5656:52;;;5704:1;5701;5694:12;5656:52;5743:9;5730:23;5762:31;5787:5;5762:31;:::i;:::-;5812:5;-1:-1:-1;5864:2:249;5849:18;;5836:32;;-1:-1:-1;5919:2:249;5904:18;;5891:32;5946:18;5935:30;;5932:50;;;5978:1;5975;5968:12;5932:50;6001;6043:7;6034:6;6023:9;6019:22;6001:50;:::i;:::-;5991:60;;;5532:525;;;;;:::o;6062:322::-;6131:6;6184:2;6172:9;6163:7;6159:23;6155:32;6152:52;;;6200:1;6197;6190:12;6152:52;6240:9;6227:23;6273:18;6265:6;6262:30;6259:50;;;6305:1;6302;6295:12;6259:50;6328;6370:7;6361:6;6350:9;6346:22;6328:50;:::i;7145:179::-;7223:13;;7276:22;7265:34;;7255:45;;7245:73;;7314:1;7311;7304:12;7245:73;7145:179;;;:::o;7329:473::-;7432:6;7440;7448;7456;7464;7517:3;7505:9;7496:7;7492:23;7488:33;7485:53;;;7534:1;7531;7524:12;7485:53;7557:39;7586:9;7557:39;:::i;:::-;7547:49;;7636:2;7625:9;7621:18;7615:25;7605:35;;7680:2;7669:9;7665:18;7659:25;7649:35;;7724:2;7713:9;7709:18;7703:25;7693:35;;7747:49;7791:3;7780:9;7776:19;7747:49;:::i;:::-;7737:59;;7329:473;;;;;;;;:::o;8109:321::-;8184:5;8213:53;8229:36;8258:6;8229:36;:::i;8213:53::-;8204:62;;8289:6;8282:5;8275:21;8329:3;8320:6;8315:3;8311:16;8308:25;8305:45;;;8346:1;8343;8336:12;8305:45;8359:65;8417:6;8410:4;8403:5;8399:16;8394:3;8359:65;:::i;8435:457::-;8514:6;8567:2;8555:9;8546:7;8542:23;8538:32;8535:52;;;8583:1;8580;8573:12;8535:52;8616:9;8610:16;8649:18;8641:6;8638:30;8635:50;;;8681:1;8678;8671:12;8635:50;8704:22;;8757:4;8749:13;;8745:27;-1:-1:-1;8735:55:249;;8786:1;8783;8776:12;8735:55;8809:77;8878:7;8873:2;8867:9;8862:2;8858;8854:11;8809:77;:::i;9128:715::-;9241:6;9294:3;9282:9;9273:7;9269:23;9265:33;9262:53;;;9311:1;9308;9301:12;9262:53;9337:22;;:::i;:::-;9388:9;9382:16;9375:5;9368:31;9452:2;9441:9;9437:18;9431:25;9426:2;9419:5;9415:14;9408:49;9510:2;9499:9;9495:18;9489:25;9484:2;9477:5;9473:14;9466:49;9568:2;9557:9;9553:18;9547:25;9542:2;9535:5;9531:14;9524:49;9627:3;9616:9;9612:19;9606:26;9600:3;9593:5;9589:15;9582:51;9687:3;9676:9;9672:19;9666:26;9660:3;9653:5;9649:15;9642:51;9747:3;9736:9;9732:19;9726:26;9720:3;9713:5;9709:15;9702:51;9807:3;9796:9;9792:19;9786:26;9780:3;9773:5;9769:15;9762:51;9832:5;9822:15;;;9128:715;;;;:::o;10333:184::-;10403:6;10456:2;10444:9;10435:7;10431:23;10427:32;10424:52;;;10472:1;10469;10462:12;10424:52;-1:-1:-1;10495:16:249;;10333:184;-1:-1:-1;10333:184:249:o;12437:277::-;12504:6;12557:2;12545:9;12536:7;12532:23;12528:32;12525:52;;;12573:1;12570;12563:12;12525:52;12605:9;12599:16;12658:5;12651:13;12644:21;12637:5;12634:32;12624:60;;12680:1;12677;12670:12;13121:184;13173:77;13170:1;13163:88;13270:4;13267:1;13260:15;13294:4;13291:1;13284:15;13310:653;13585:3;13574:9;13567:22;13548:4;13612:46;13653:3;13642:9;13638:19;13630:6;13612:46;:::i;:::-;13706:42;13698:6;13694:55;13689:2;13678:9;13674:18;13667:83;13786:6;13781:2;13770:9;13766:18;13759:34;13841:9;13833:6;13829:22;13824:2;13813:9;13809:18;13802:50;13869:33;13895:6;13887;13869:33;:::i;:::-;13861:41;;;13951:4;13943:6;13939:17;13933:3;13922:9;13918:19;13911:46;13310:653;;;;;;;;:::o;14397:423::-;14655:4;14643:17;;;14625:36;;14697:17;;14692:2;14677:18;;14670:45;14613:2;14598:18;;14745:1;14734:13;;14724:47;;14751:18;;:::i;:::-;14807:6;14802:2;14791:9;14787:18;14780:34;14397:423;;;;;;:::o;14825:553::-;15071:3;15060:9;15053:22;15034:4;15092:46;15133:3;15122:9;15118:19;15110:6;15092:46;:::i;:::-;15084:54;;15186:42;15178:6;15174:55;15169:2;15158:9;15154:18;15147:83;15266:6;15261:2;15250:9;15246:18;15239:34;15303:1;15295:6;15292:13;15282:47;;15309:18;;:::i;:::-;15365:6;15360:2;15349:9;15345:18;15338:34;14825:553;;;;;;;:::o;16016:160::-;16093:13;;16146:4;16135:16;;16125:27;;16115:55;;16166:1;16163;16156:12;16181:204;16249:6;16302:2;16290:9;16281:7;16277:23;16273:32;16270:52;;;16318:1;16315;16308:12;16270:52;16341:38;16369:9;16341:38;:::i;16980:138::-;17059:13;;17081:31;17059:13;17081:31;:::i;17123:251::-;17193:6;17246:2;17234:9;17225:7;17221:23;17217:32;17214:52;;;17262:1;17259;17252:12;17214:52;17294:9;17288:16;17313:31;17338:5;17313:31;:::i;18155:340::-;18332:2;18321:9;18314:21;18295:4;18352:45;18393:2;18382:9;18378:18;18370:6;18352:45;:::i;:::-;18344:53;;18445:42;18437:6;18433:55;18428:2;18417:9;18413:18;18406:83;18155:340;;;;;:::o;18928:531::-;19169:66;19161:6;19157:79;19146:9;19139:98;19273:2;19268;19257:9;19253:18;19246:30;19120:4;19299:45;19340:2;19329:9;19325:18;19317:6;19299:45;:::i;:::-;19392:9;19384:6;19380:22;19375:2;19364:9;19360:18;19353:50;19420:33;19446:6;19438;19420:33;:::i;19653:873::-;19756:6;19809:3;19797:9;19788:7;19784:23;19780:33;19777:53;;;19826:1;19823;19816:12;19777:53;19852:22;;:::i;:::-;19903:9;19897:16;19890:5;19883:31;19967:2;19956:9;19952:18;19946:25;19941:2;19934:5;19930:14;19923:49;20017:2;20006:9;20002:18;19996:25;20030:33;20055:7;20030:33;:::i;:::-;20090:2;20079:14;;20072:31;20156:2;20141:18;;;20135:25;20119:14;;;20112:49;20206:3;20191:19;;20185:26;20220:33;20185:26;20220:33;:::i;:::-;20286:7;20280:3;20273:5;20269:15;20262:32;;20348:3;20337:9;20333:19;20327:26;20321:3;20314:5;20310:15;20303:51;20408:3;20397:9;20393:19;20387:26;20381:3;20374:5;20370:15;20363:51;20447:48;20490:3;20479:9;20475:19;20447:48;:::i;:::-;20441:3;20430:15;;20423:73;20434:5;19653:873;-1:-1:-1;;;19653:873:249:o;20531:236::-;20585:5;20638:3;20631:4;20623:6;20619:17;20615:27;20605:55;;20656:1;20653;20646:12;20605:55;20678:83;20757:3;20748:6;20742:13;20735:4;20727:6;20723:17;20678:83;:::i;20772:1113::-;20875:6;20928:2;20916:9;20907:7;20903:23;20899:32;20896:52;;;20944:1;20941;20934:12;20896:52;20977:9;20971:16;21006:18;21047:2;21039:6;21036:14;21033:34;;;21063:1;21060;21053:12;21033:34;21086:22;;;;21142:6;21124:16;;;21120:29;21117:49;;;21162:1;21159;21152:12;21117:49;21188:22;;:::i;:::-;21239:2;21233:9;21226:5;21219:24;21275:42;21313:2;21309;21305:11;21275:42;:::i;:::-;21270:2;21263:5;21259:14;21252:66;21364:2;21360;21356:11;21350:18;21345:2;21338:5;21334:14;21327:42;21415:2;21411;21407:11;21401:18;21396:2;21389:5;21385:14;21378:42;21459:3;21455:2;21451:12;21445:19;21489:2;21479:8;21476:16;21473:36;;;21505:1;21502;21495:12;21473:36;21542:56;21590:7;21579:8;21575:2;21571:17;21542:56;:::i;:::-;21536:3;21529:5;21525:15;21518:81;;21646:3;21642:2;21638:12;21632:19;21626:3;21619:5;21615:15;21608:44;21685:43;21723:3;21719:2;21715:12;21685:43;:::i;:::-;21679:3;21668:15;;21661:68;21776:3;21768:12;;;21762:19;21745:15;;;21738:44;21801:3;21842:11;;;21836:18;21820:14;;;21813:42;;;;-1:-1:-1;21672:5:249;20772:1113;-1:-1:-1;;;20772:1113:249:o;22491:291::-;22668:2;22657:9;22650:21;22631:4;22688:45;22729:2;22718:9;22714:18;22706:6;22688:45;:::i;:::-;22680:53;;22769:6;22764:2;22753:9;22749:18;22742:34;22491:291;;;;;:::o;23343:426::-;23552:2;23541:9;23534:21;23515:4;23572:45;23613:2;23602:9;23598:18;23590:6;23572:45;:::i;:::-;23564:53;;23665:4;23657:6;23653:17;23648:2;23637:9;23633:18;23626:45;23719:42;23711:6;23707:55;23702:2;23691:9;23687:18;23680:83;23343:426;;;;;;:::o;24533:482::-;24764:3;24753:9;24746:22;24727:4;24785:46;24826:3;24815:9;24811:19;24803:6;24785:46;:::i;:::-;24879:42;24867:55;;;;24862:2;24847:18;;24840:83;-1:-1:-1;24954:2:249;24939:18;;24932:34;;;;24997:2;24982:18;;;24975:34;24777:54;24533:482;-1:-1:-1;24533:482:249:o;25378:489::-;25605:3;25594:9;25587:22;25568:4;25626:46;25667:3;25656:9;25652:19;25644:6;25626:46;:::i;:::-;25720:42;25708:55;;;;25703:2;25688:18;;25681:83;-1:-1:-1;25795:2:249;25780:18;;25773:34;;;;25855:4;25843:17;25838:2;25823:18;;;25816:45;25618:54;25378:489;-1:-1:-1;25378:489:249:o;26283:411::-;26500:42;26492:6;26488:55;26477:9;26470:74;26580:2;26575;26564:9;26560:18;26553:30;26451:4;26600:45;26641:2;26630:9;26626:18;26618:6;26600:45;:::i;:::-;26592:53;;26681:6;26676:2;26665:9;26661:18;26654:34;26283:411;;;;;;:::o;27101:184::-;27153:77;27150:1;27143:88;27250:4;27247:1;27240:15;27274:4;27271:1;27264:15;27290:482;27379:1;27422:5;27379:1;27436:330;27457:7;27447:8;27444:21;27436:330;;;27576:4;27508:66;27504:77;27498:4;27495:87;27492:113;;;27585:18;;:::i;:::-;27635:7;27625:8;27621:22;27618:55;;;27655:16;;;;27618:55;27734:22;;;;27694:15;;;;27436:330;;;27440:3;27290:482;;;;;:::o;27777:866::-;27826:5;27856:8;27846:80;;-1:-1:-1;27897:1:249;27911:5;;27846:80;27945:4;27935:76;;-1:-1:-1;27982:1:249;27996:5;;27935:76;28027:4;28045:1;28040:59;;;;28113:1;28108:130;;;;28020:218;;28040:59;28070:1;28061:10;;28084:5;;;28108:130;28145:3;28135:8;28132:17;28129:43;;;28152:18;;:::i;:::-;-1:-1:-1;;28208:1:249;28194:16;;28223:5;;28020:218;;28322:2;28312:8;28309:16;28303:3;28297:4;28294:13;28290:36;28284:2;28274:8;28271:16;28266:2;28260:4;28257:12;28253:35;28250:77;28247:159;;;-1:-1:-1;28359:19:249;;;28391:5;;28247:159;28438:34;28463:8;28457:4;28438:34;:::i;:::-;28568:6;28500:66;28496:79;28487:7;28484:92;28481:118;;;28579:18;;:::i;:::-;28617:20;;27777:866;-1:-1:-1;;;27777:866:249:o;28648:131::-;28708:5;28737:36;28764:8;28758:4;28737:36;:::i;30604:605::-;30725:6;30733;30741;30749;30802:3;30790:9;30781:7;30777:23;30773:33;30770:53;;;30819:1;30816;30809:12;30770:53;30851:9;30845:16;30870:31;30895:5;30870:31;:::i;:::-;30965:2;30950:18;;30944:25;31014:2;30999:18;;30993:25;30920:5;;-1:-1:-1;30944:25:249;-1:-1:-1;31027:33:249;30993:25;31027:33;:::i;:::-;31131:2;31116:18;;31110:25;31079:7;;-1:-1:-1;31144:33:249;31110:25;31144:33;:::i","linkReferences":{"src/libraries/Conversion.sol":{"Conversion":[{"start":4872,"length":20},{"start":15490,"length":20}]},"src/libraries/Security.sol":{"Security":[{"start":4593,"length":20},{"start":6330,"length":20},{"start":6451,"length":20},{"start":7283,"length":20},{"start":7404,"length":20},{"start":8894,"length":20},{"start":9015,"length":20},{"start":12532,"length":20},{"start":12947,"length":20},{"start":13768,"length":20},{"start":13889,"length":20},{"start":15750,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":10485,"length":20}]}},"immutableReferences":{"71353":[{"start":4409,"length":32},{"start":5629,"length":32},{"start":7651,"length":32},{"start":7897,"length":32},{"start":8147,"length":32},{"start":8505,"length":32},{"start":8692,"length":32},{"start":9278,"length":32},{"start":9565,"length":32},{"start":9824,"length":32},{"start":10930,"length":32},{"start":11410,"length":32},{"start":11759,"length":32},{"start":12354,"length":32},{"start":12769,"length":32},{"start":14152,"length":32},{"start":15143,"length":32},{"start":15995,"length":32},{"start":16565,"length":32},{"start":16853,"length":32}],"71356":[{"start":10517,"length":32}],"71437":[{"start":6071,"length":32},{"start":10166,"length":32}]}},"methodIdentifiers":{"ACL_ADMIN()":"5e209249","ACTION()":"dbd55fb3","ACTION_MANAGER()":"25889b22","ACTION_MANAGER_NAME_ACTIONS()":"739baf49","ACTION_USER_IMPLENTATION_CALLER()":"c414d4f9","ADDRESS_ACTION_MANAGER()":"ba9a08d7","ADDRESS_BLUEPRINT_MANAGER()":"e642ad34","ADDRESS_LENDER_MARKET()":"423ac8d9","ADDRESS_MANAGER_ACCESS_CONTROL()":"5f39ca22","ADDRESS_MODULE_MANAGER()":"420ea360","ADDRESS_MONEY_MARKET_NAME_BLUEPRINT()":"be22fa1e","ADDRESS_NAME_CONCRETE()":"d017d357","ADDRESS_NAME_MASTERVAULT()":"e51a3bab","ADDRESS_NAME_PORTFOLIO()":"430c6fe6","ADDRESS_NAME_STREAMVAULT()":"697e744c","ADDRESS_NAME_TOKEN_ETH()":"8b3e0471","ADDRESS_NAME_TOKEN_USDC()":"6a0b3f64","ADDRESS_NAME_TOKEN_WETH()":"26026d18","ADDRESS_STAKEABLE_C_ASSET_TOKEN()":"608dade9","ADDRESS_TOKEN_CHAIN_PRICEFEED()":"a652cb80","ADDRESS_TOKEN_PRICEFEED()":"057afbfe","ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT()":"a2fd43c5","BLUEPRINT()":"0072e140","BLUEPRINT_MANAGER()":"95789e1c","BLUEPRINT_MANAGER_NAME_BLUEPRINTS()":"2d1da17e","CONCRETE_MANAGER()":"2a0f4d6b","COUNTER_CLAIM_ID()":"a5be6063","COUNTER_LOAN_ID()":"724348ab","COUNTER_PORTFOLIO_ID()":"79c52aca","COUNTER_PROTECTION_ID()":"c5ad7879","COUNTER_RECEIPT_ID()":"f61e60f2","CT_REWARDS_TREASURY()":"5e61dc38","CT_STAKING_CONTRACT()":"264c1356","CT_TOKEN_ADDRESS()":"d88597de","MODULE()":"094d3a34","MODULE_MANAGER()":"8b40da7d","MODULE_MANAGER_NAME_MODULES()":"59dcf3f6","PORTFOLIOID_INDEX_TO_LOANID()":"ca6d5e33","PORTFOLIOID_INDEX_TO_USER()":"42ff308b","PORTFOLIOID_TO_USER()":"91aab3e4","PROTOCOL()":"91b9b827","PROTOCOL_MANAGER()":"ccca8911","RECEIPTID_TO_POSITION()":"d83205c0","RECEIPTID_TO_USER()":"ec11384a","ROLE_NAME_USER_TO_EXIST()":"7a25c9d3","STAKING_DURATION_AND_REWARDS()":"af895a3b","STAKING_RECEIPT_ADDRESS()":"9e5f8542","SUDO_ADMIN()":"8c3e62b6","TOKEN_LENDER_NAME_COLLATERAL_APPROVED()":"00a9d96e","USER_ID_CLAIM()":"d15263d3","USER_ID_PROTECTION()":"62a4c3df","USER_ID_PROTECTIONID()":"b70855fb","USER_ID_PROTECTION_FINANCIAL_TERMS()":"aacb7f34","USER_ID_PROTECTION_UPDATES()":"eaca3864","USER_INDEX_TO_BORROWDATA()":"7d49df3b","USER_INDEX_TO_LOANID()":"7d95de8e","USER_INDEX_TO_LOANINITIALDATA()":"61945bfc","USER_INDEX_TO_LOANSUPPLYDATA()":"678df18f","USER_INDEX_TO_LOANUPDATE()":"9d185264","USER_TO_PORTFOLIOID()":"638bf74f","USER_TO_RECEIPT_INDEX_COUNT()":"0e494332","executeActionTransaction(string,uint256,bytes,uint8)":"8d7e9e94","getActionAddress(string)":"ffbf5163","getDecimals(address)":"cf54aaa0","getLatestPrice(address)":"16345f18","initiateForeclosure(uint256,uint256,address,uint256)":"a3043fb8","processClaimFee(address,uint256)":"1c22eb86","startClaim(address,uint256,string)":"efdcd2c5","transferLoanToConcrete(uint256,uint256,address,uint256)":"e01a56ba"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"concreteStorage_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ACL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER_NAME_ACTIONS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_USER_IMPLENTATION_CALLER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_LENDER_MARKET\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MANAGER_ACCESS_CONTROL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_CONCRETE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_MASTERVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_PORTFOLIO\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_STREAMVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_ETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_USDC\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_WETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_STAKEABLE_C_ASSET_TOKEN\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_CHAIN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER_NAME_BLUEPRINTS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONCRETE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_CLAIM_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_LOAN_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PORTFOLIO_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PROTECTION_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_RECEIPT_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_REWARDS_TREASURY\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_STAKING_CONTRACT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_TOKEN_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER_NAME_MODULES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_POSITION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLE_NAME_USER_TO_EXIST\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_DURATION_AND_REWARDS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_RECEIPT_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUDO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_LENDER_NAME_COLLATERAL_APPROVED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_CLAIM\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTIONID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_FINANCIAL_TERMS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_UPDATES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_BORROWDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANINITIALDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANSUPPLYDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANUPDATE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_PORTFOLIOID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_RECEIPT_INDEX_COUNT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation_\",\"type\":\"uint8\"}],\"name\":\"executeActionTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"}],\"name\":\"getActionAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"priceFeedAddress_\",\"type\":\"address\"}],\"name\":\"getDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"priceFeedAddress_\",\"type\":\"address\"}],\"name\":\"getLatestPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"uniqueId_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"portfolioId_\",\"type\":\"uint256\"}],\"name\":\"initiateForeclosure\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"}],\"name\":\"processClaimFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"uniqueId_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer_\",\"type\":\"string\"}],\"name\":\"startClaim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"uniqueId_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"portfolioId_\",\"type\":\"uint256\"}],\"name\":\"transferLoanToConcrete\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract is used to manage loans and protections to ensure a user never gets liqudated\",\"kind\":\"dev\",\"methods\":{\"getDecimals(address)\":{\"params\":{\"priceFeedAddress_\":\"The address of the token to check for the decimals\"},\"returns\":{\"_0\":\"The decimals of the token\"}},\"getLatestPrice(address)\":{\"params\":{\"priceFeedAddress_\":\"The address of the token to check for the latest price\"},\"returns\":{\"_0\":\"The latest price of the token\"}}},\"title\":\"ClaimBlueprint\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getDecimals(address)\":{\"notice\":\"Gets the decimals of a token from Chainlink\"},\"getLatestPrice(address)\":{\"notice\":\"Gets the latest price of a token from Chainlink\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/borrow/blueprints/LTVProtect/ClaimBlueprint.sol\":\"ClaimBlueprint\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":10000000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol\":{\"keccak256\":\"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7\",\"dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd\",\"dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x51ccb6df77b7f738be30d7f023cf76532d90e4b70b2c2df311061240a3762ee4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97e820398691048f12a39bd44ad4a65a30d04b56aba3130fe078d6bc3a27e909\",\"dweb:/ipfs/QmYsXHTrn7PhvdV2QBqiC7mDnBPgpFAcPjMAKRWkkJgXBR\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"src/borrow/actions/claim/interfaces/IClaim.sol\":{\"keccak256\":\"0x7e56014d0b71796aa85a5f6af8a14328595fb19e494b34e7b23bdebd10919894\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0bbefbc1f26d0da6fd33261c35393c8507f675d350657ef625a803a3f0f6eada\",\"dweb:/ipfs/QmNrekVcmuxmeUsyC1nLYSgKgsH6rBw9Z3gHRV7p8D5J9U\"]},\"src/borrow/actions/loan/interfaces/ILoan.sol\":{\"keccak256\":\"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0\",\"dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ\"]},\"src/borrow/actions/protection/interfaces/IProtection.sol\":{\"keccak256\":\"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d\",\"dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2\"]},\"src/borrow/blueprints/LTVProtect/ClaimBlueprint.sol\":{\"keccak256\":\"0x33bcef5ce68e34b60aeda7c54cdfabcd3a6c082c756c7d9630eff4ae733937c9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb479d48afcc58a93a818bd2ea13d111ca0eef7c0fd857e70a4657b7b3e01bd9\",\"dweb:/ipfs/QmTVKF81q1JZAPErv967cr4mUoSVob8Uyx37FsDXzbqYZz\"]},\"src/borrow/utils/implementations/interfaces/ILenderBase.sol\":{\"keccak256\":\"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f\",\"dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK\"]},\"src/core/ActionManager.sol\":{\"keccak256\":\"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831\",\"dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG\"]},\"src/core/Executor.sol\":{\"keccak256\":\"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f\",\"dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h\"]},\"src/core/interfaces/IACL.sol\":{\"keccak256\":\"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a\",\"dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo\"]},\"src/core/interfaces/IConcreteStorage.sol\":{\"keccak256\":\"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8\",\"dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF\"]},\"src/core/interfaces/IERC165.sol\":{\"keccak256\":\"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473\",\"dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7\"]},\"src/core/utils/ConcreteRoles.sol\":{\"keccak256\":\"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab\",\"dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72\"]},\"src/core/utils/OnlyRole.sol\":{\"keccak256\":\"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a\",\"dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN\"]},\"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol\":{\"keccak256\":\"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980\",\"dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj\"]},\"src/helpers/Enum.sol\":{\"keccak256\":\"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2\",\"dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh\"]},\"src/helpers/Pointer.sol\":{\"keccak256\":\"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c\",\"dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ\"]},\"src/helpers/StorageHandler.sol\":{\"keccak256\":\"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab\",\"dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa\"]},\"src/helpers/base/BlueprintBase.sol\":{\"keccak256\":\"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0\",\"dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC\"]},\"src/helpers/chainlink/ChainlinkOraclePrice.sol\":{\"keccak256\":\"0x05969db662059819fe78f8364dc37e2f47a4bc43d195a03a32b260dbd58e8314\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25660a2758e7486c8f28faa9da743d354c5a18316789baa45a66beb4fde06f\",\"dweb:/ipfs/QmUs7i7kRsgymGmX7v68pYSm7AdX4jKeaRPbGkzrovcicv\"]},\"src/libraries/Conversion.sol\":{\"keccak256\":\"0x40cae95ca04ad9f6c79c01cc38ce3161546712c519ca8bd00ec68e2f49dcbb6f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://70969f14e9ec93eabbb3bb8f9f7f9496287e74825815c1f00870fc024d4e34b8\",\"dweb:/ipfs/QmTrUkbZVETdXTT35FtwomsMRtniPNMboYh3N3JWdoSo1j\"]},\"src/libraries/Security.sol\":{\"keccak256\":\"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c\",\"dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY\"]},\"src/libraries/StorageKeyLib.sol\":{\"keccak256\":\"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f\",\"dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"concreteStorage_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"stateMutability":"view","type":"function","name":"ACL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_ACTION_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_LENDER_MARKET","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MODULE_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_CONCRETE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_MASTERVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_PORTFOLIO","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_STREAMVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_ETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_USDC","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_WETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONCRETE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_CLAIM_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_LOAN_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PORTFOLIO_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PROTECTION_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_RECEIPT_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_REWARDS_TREASURY","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_STAKING_CONTRACT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_TOKEN_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER_NAME_MODULES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_POSITION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROLE_NAME_USER_TO_EXIST","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_DURATION_AND_REWARDS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_RECEIPT_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SUDO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_CLAIM","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTIONID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_UPDATES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_BORROWDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANUPDATE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_PORTFOLIOID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"executeActionTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"}],"stateMutability":"view","type":"function","name":"getActionAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"priceFeedAddress_","type":"address"}],"stateMutability":"view","type":"function","name":"getDecimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"priceFeedAddress_","type":"address"}],"stateMutability":"view","type":"function","name":"getLatestPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"loanId_","type":"uint256"},{"internalType":"uint256","name":"uniqueId_","type":"uint256"},{"internalType":"address","name":"user_","type":"address"},{"internalType":"uint256","name":"portfolioId_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initiateForeclosure"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"uint256","name":"loanId_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"processClaimFee"},{"inputs":[{"internalType":"address","name":"user_","type":"address"},{"internalType":"uint256","name":"uniqueId_","type":"uint256"},{"internalType":"string","name":"pointer_","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"startClaim"},{"inputs":[{"internalType":"uint256","name":"loanId_","type":"uint256"},{"internalType":"uint256","name":"uniqueId_","type":"uint256"},{"internalType":"address","name":"user_","type":"address"},{"internalType":"uint256","name":"portfolioId_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferLoanToConcrete"}],"devdoc":{"kind":"dev","methods":{"getDecimals(address)":{"params":{"priceFeedAddress_":"The address of the token to check for the decimals"},"returns":{"_0":"The decimals of the token"}},"getLatestPrice(address)":{"params":{"priceFeedAddress_":"The address of the token to check for the latest price"},"returns":{"_0":"The latest price of the token"}}},"version":1},"userdoc":{"kind":"user","methods":{"getDecimals(address)":{"notice":"Gets the decimals of a token from Chainlink"},"getLatestPrice(address)":{"notice":"Gets the latest price of a token from Chainlink"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","chainlink/=lib/chainlink/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":10000000},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/borrow/blueprints/LTVProtect/ClaimBlueprint.sol":"ClaimBlueprint"},"evmVersion":"paris","libraries":{}},"sources":{"lib/chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol":{"keccak256":"0xfe4e8bb4861bb3860ba890ab91a3b818ec66e5a8f544fb608cfcb73f433472cd","urls":["bzz-raw://644cff84052e1e82b5bb502b2a46e8f142a62b0db4cd9b38200798ba8373c6f7","dweb:/ipfs/QmTa99QHrJBn3SXDizquPBUiTxVCNKQrHgaWJhuds5Sce2"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1","urls":["bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd","dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x51ccb6df77b7f738be30d7f023cf76532d90e4b70b2c2df311061240a3762ee4","urls":["bzz-raw://97e820398691048f12a39bd44ad4a65a30d04b56aba3130fe078d6bc3a27e909","dweb:/ipfs/QmYsXHTrn7PhvdV2QBqiC7mDnBPgpFAcPjMAKRWkkJgXBR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"src/borrow/actions/claim/interfaces/IClaim.sol":{"keccak256":"0x7e56014d0b71796aa85a5f6af8a14328595fb19e494b34e7b23bdebd10919894","urls":["bzz-raw://0bbefbc1f26d0da6fd33261c35393c8507f675d350657ef625a803a3f0f6eada","dweb:/ipfs/QmNrekVcmuxmeUsyC1nLYSgKgsH6rBw9Z3gHRV7p8D5J9U"],"license":"MIT"},"src/borrow/actions/loan/interfaces/ILoan.sol":{"keccak256":"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4","urls":["bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0","dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ"],"license":"MIT"},"src/borrow/actions/protection/interfaces/IProtection.sol":{"keccak256":"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935","urls":["bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d","dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2"],"license":"MIT"},"src/borrow/blueprints/LTVProtect/ClaimBlueprint.sol":{"keccak256":"0x33bcef5ce68e34b60aeda7c54cdfabcd3a6c082c756c7d9630eff4ae733937c9","urls":["bzz-raw://bb479d48afcc58a93a818bd2ea13d111ca0eef7c0fd857e70a4657b7b3e01bd9","dweb:/ipfs/QmTVKF81q1JZAPErv967cr4mUoSVob8Uyx37FsDXzbqYZz"],"license":"MIT"},"src/borrow/utils/implementations/interfaces/ILenderBase.sol":{"keccak256":"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7","urls":["bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f","dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK"],"license":"MIT"},"src/core/ActionManager.sol":{"keccak256":"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a","urls":["bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831","dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG"],"license":"MIT"},"src/core/Executor.sol":{"keccak256":"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e","urls":["bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f","dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h"],"license":"MIT"},"src/core/interfaces/IACL.sol":{"keccak256":"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5","urls":["bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a","dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo"],"license":"MIT"},"src/core/interfaces/IConcreteStorage.sol":{"keccak256":"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9","urls":["bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8","dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF"],"license":"MIT"},"src/core/interfaces/IERC165.sol":{"keccak256":"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10","urls":["bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473","dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7"],"license":"MIT"},"src/core/utils/ConcreteRoles.sol":{"keccak256":"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e","urls":["bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab","dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72"],"license":"MIT"},"src/core/utils/OnlyRole.sol":{"keccak256":"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11","urls":["bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a","dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN"],"license":"MIT"},"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol":{"keccak256":"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f","urls":["bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980","dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj"],"license":"MIT"},"src/helpers/Enum.sol":{"keccak256":"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559","urls":["bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2","dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh"],"license":"MIT"},"src/helpers/Pointer.sol":{"keccak256":"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a","urls":["bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c","dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ"],"license":"MIT"},"src/helpers/StorageHandler.sol":{"keccak256":"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51","urls":["bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab","dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa"],"license":"MIT"},"src/helpers/base/BlueprintBase.sol":{"keccak256":"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492","urls":["bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0","dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC"],"license":"MIT"},"src/helpers/chainlink/ChainlinkOraclePrice.sol":{"keccak256":"0x05969db662059819fe78f8364dc37e2f47a4bc43d195a03a32b260dbd58e8314","urls":["bzz-raw://8e25660a2758e7486c8f28faa9da743d354c5a18316789baa45a66beb4fde06f","dweb:/ipfs/QmUs7i7kRsgymGmX7v68pYSm7AdX4jKeaRPbGkzrovcicv"],"license":"MIT"},"src/libraries/Conversion.sol":{"keccak256":"0x40cae95ca04ad9f6c79c01cc38ce3161546712c519ca8bd00ec68e2f49dcbb6f","urls":["bzz-raw://70969f14e9ec93eabbb3bb8f9f7f9496287e74825815c1f00870fc024d4e34b8","dweb:/ipfs/QmTrUkbZVETdXTT35FtwomsMRtniPNMboYh3N3JWdoSo1j"],"license":"MIT"},"src/libraries/Security.sol":{"keccak256":"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b","urls":["bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c","dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY"],"license":"MIT"},"src/libraries/StorageKeyLib.sol":{"keccak256":"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7","urls":["bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f","dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/borrow/blueprints/LTVProtect/ClaimBlueprint.sol","id":59453,"exportedSymbols":{"BlueprintBase":[71548],"ChainlinkOraclePrice":[71810],"ClaimBlueprint":[59452],"Conversion":[74379],"Enum":[71189],"IClaim":[54631],"IERC20":[45751],"ILoan":[56049],"IProtection":[57273],"SafeERC20":[46103],"Security":[75484]},"nodeType":"SourceUnit","src":"31:14643:83","nodes":[{"id":58190,"nodeType":"PragmaDirective","src":"31:23:83","nodes":[],"literals":["solidity","0.8",".20"]},{"id":58192,"nodeType":"ImportDirective","src":"56:49:83","nodes":[],"absolutePath":"src/helpers/Enum.sol","file":"../../../helpers/Enum.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":71190,"symbolAliases":[{"foreign":{"id":58191,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"65:4:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58194,"nodeType":"ImportDirective","src":"106:72:83","nodes":[],"absolutePath":"src/helpers/base/BlueprintBase.sol","file":"../../../helpers/base/BlueprintBase.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":71549,"symbolAliases":[{"foreign":{"id":58193,"name":"BlueprintBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71548,"src":"115:13:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58196,"nodeType":"ImportDirective","src":"179:59:83","nodes":[],"absolutePath":"src/libraries/Security.sol","file":"../../../libraries/Security.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":75485,"symbolAliases":[{"foreign":{"id":58195,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"188:8:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58198,"nodeType":"ImportDirective","src":"239:64:83","nodes":[],"absolutePath":"src/borrow/actions/loan/interfaces/ILoan.sol","file":"../../actions/loan/interfaces/ILoan.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":56050,"symbolAliases":[{"foreign":{"id":58197,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"248:5:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58200,"nodeType":"ImportDirective","src":"304:67:83","nodes":[],"absolutePath":"src/borrow/actions/claim/interfaces/IClaim.sol","file":"../../actions/claim/interfaces/IClaim.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":54632,"symbolAliases":[{"foreign":{"id":58199,"name":"IClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54631,"src":"313:6:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58202,"nodeType":"ImportDirective","src":"372:97:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../../../../lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":45752,"symbolAliases":[{"foreign":{"id":58201,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45751,"src":"381:6:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58204,"nodeType":"ImportDirective","src":"470:82:83","nodes":[],"absolutePath":"src/borrow/actions/protection/interfaces/IProtection.sol","file":"../../actions/protection/interfaces/IProtection.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":57274,"symbolAliases":[{"foreign":{"id":58203,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"479:11:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58206,"nodeType":"ImportDirective","src":"553:91:83","nodes":[],"absolutePath":"src/helpers/chainlink/ChainlinkOraclePrice.sol","file":"../../../helpers/chainlink/ChainlinkOraclePrice.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":71811,"symbolAliases":[{"foreign":{"id":58205,"name":"ChainlinkOraclePrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71810,"src":"562:20:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58208,"nodeType":"ImportDirective","src":"645:109:83","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"../../../../lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":46104,"symbolAliases":[{"foreign":{"id":58207,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46103,"src":"654:9:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":58210,"nodeType":"ImportDirective","src":"755:63:83","nodes":[],"absolutePath":"src/libraries/Conversion.sol","file":"../../../libraries/Conversion.sol","nameLocation":"-1:-1:-1","scope":59453,"sourceUnit":74380,"symbolAliases":[{"foreign":{"id":58209,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"764:10:83","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":59452,"nodeType":"ContractDefinition","src":"953:13720:83","nodes":[{"id":58224,"nodeType":"FunctionDefinition","src":"1022:73:83","nodes":[],"body":{"id":58223,"nodeType":"Block","src":"1092:3:83","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":58220,"name":"concreteStorage_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58217,"src":"1074:16:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":58221,"kind":"baseConstructorSpecifier","modifierName":{"id":58219,"name":"BlueprintBase","nameLocations":["1060:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"1060:13:83"},"nodeType":"ModifierInvocation","src":"1060:31:83"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":58218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58217,"mutability":"mutable","name":"concreteStorage_","nameLocation":"1042:16:83","nodeType":"VariableDeclaration","scope":58224,"src":"1034:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58216,"name":"address","nodeType":"ElementaryTypeName","src":"1034:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1033:26:83"},"returnParameters":{"id":58222,"nodeType":"ParameterList","parameters":[],"src":"1092:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58228,"nodeType":"UsingForDirective","src":"1101:27:83","nodes":[],"global":false,"libraryName":{"id":58225,"name":"SafeERC20","nameLocations":["1107:9:83"],"nodeType":"IdentifierPath","referencedDeclaration":46103,"src":"1107:9:83"},"typeName":{"id":58227,"nodeType":"UserDefinedTypeName","pathNode":{"id":58226,"name":"IERC20","nameLocations":["1121:6:83"],"nodeType":"IdentifierPath","referencedDeclaration":45751,"src":"1121:6:83"},"referencedDeclaration":45751,"src":"1121:6:83","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}}},{"id":58373,"nodeType":"FunctionDefinition","src":"1253:1491:83","nodes":[],"body":{"id":58372,"nodeType":"Block","src":"1338:1406:83","nodes":[],"statements":[{"expression":{"arguments":[{"id":58240,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58230,"src":"1373:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58237,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1348:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":58239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1357:15:83","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"1348:24:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":58241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1348:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58242,"nodeType":"ExpressionStatement","src":"1348:31:83"},{"expression":{"arguments":[{"id":58246,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58232,"src":"1411:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58243,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"1389:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":58245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1398:12:83","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"1389:21:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":58247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1389:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58248,"nodeType":"ExpressionStatement","src":"1389:32:83"},{"assignments":[58250],"declarations":[{"constant":false,"id":58250,"mutability":"mutable","name":"loanKey","nameLocation":"1440:7:83","nodeType":"VariableDeclaration","scope":58372,"src":"1432:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1432:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58259,"initialValue":{"arguments":[{"id":58252,"name":"USER_INDEX_TO_LOANID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71216,"src":"1460:20:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":58255,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58230,"src":"1493:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58256,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58232,"src":"1500:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58253,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1482:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58254,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1486:6:83","memberName":"encode","nodeType":"MemberAccess","src":"1482:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58251,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"1450:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":58258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1450:61:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1432:79:83"},{"assignments":[58261],"declarations":[{"constant":false,"id":58261,"mutability":"mutable","name":"loanId_","nameLocation":"1529:7:83","nodeType":"VariableDeclaration","scope":58372,"src":"1521:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58260,"name":"uint256","nodeType":"ElementaryTypeName","src":"1521:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58266,"initialValue":{"arguments":[{"id":58264,"name":"loanKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58250,"src":"1563:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58262,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"1539:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":58263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1555:7:83","memberName":"getUint","nodeType":"MemberAccess","referencedDeclaration":67286,"src":"1539:23:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":58265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1539:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1521:50:83"},{"assignments":[58268],"declarations":[{"constant":false,"id":58268,"mutability":"mutable","name":"portfolioKey","nameLocation":"1589:12:83","nodeType":"VariableDeclaration","scope":58372,"src":"1581:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1581:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58276,"initialValue":{"arguments":[{"id":58270,"name":"USER_TO_PORTFOLIOID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71195,"src":"1614:19:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":58273,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58230,"src":"1646:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1635:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1639:6:83","memberName":"encode","nodeType":"MemberAccess","src":"1635:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1635:17:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58269,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"1604:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":58275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1604:49:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1581:72:83"},{"assignments":[58278],"declarations":[{"constant":false,"id":58278,"mutability":"mutable","name":"portfolioId_","nameLocation":"1671:12:83","nodeType":"VariableDeclaration","scope":58372,"src":"1663:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58277,"name":"uint256","nodeType":"ElementaryTypeName","src":"1663:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58283,"initialValue":{"arguments":[{"id":58281,"name":"portfolioKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58268,"src":"1710:12:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58279,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"1686:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":58280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1702:7:83","memberName":"getUint","nodeType":"MemberAccess","referencedDeclaration":67286,"src":"1686:23:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":58282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1686:37:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1663:60:83"},{"assignments":[58285],"declarations":[{"constant":false,"id":58285,"mutability":"mutable","name":"key","nameLocation":"1741:3:83","nodeType":"VariableDeclaration","scope":58372,"src":"1733:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1733:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58294,"initialValue":{"arguments":[{"id":58287,"name":"USER_ID_PROTECTION_FINANCIAL_TERMS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71243,"src":"1757:34:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":58290,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58230,"src":"1804:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58291,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58261,"src":"1811:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58288,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1793:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1797:6:83","memberName":"encode","nodeType":"MemberAccess","src":"1793:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1793:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58286,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"1747:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":58293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1747:73:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1733:87:83"},{"assignments":[58296],"declarations":[{"constant":false,"id":58296,"mutability":"mutable","name":"protectionFinancialTermsData","nameLocation":"1843:28:83","nodeType":"VariableDeclaration","scope":58372,"src":"1830:41:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58295,"name":"bytes","nodeType":"ElementaryTypeName","src":"1830:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58301,"initialValue":{"arguments":[{"id":58299,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58285,"src":"1899:3:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58297,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"1874:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":58298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1890:8:83","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"1874:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":58300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1874:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1830:73:83"},{"assignments":[58306],"declarations":[{"constant":false,"id":58306,"mutability":"mutable","name":"protectionFinancialTerms","nameLocation":"1958:24:83","nodeType":"VariableDeclaration","scope":58372,"src":"1914:68:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"},"typeName":{"id":58305,"nodeType":"UserDefinedTypeName","pathNode":{"id":58304,"name":"IProtection.ProtectionFinancialTerms","nameLocations":["1914:11:83","1926:24:83"],"nodeType":"IdentifierPath","referencedDeclaration":57272,"src":"1914:36:83"},"referencedDeclaration":57272,"src":"1914:36:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_storage_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"}},"visibility":"internal"}],"id":58314,"initialValue":{"arguments":[{"id":58309,"name":"protectionFinancialTermsData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58296,"src":"2008:28:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":58310,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"2039:11:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":58311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2051:24:83","memberName":"ProtectionFinancialTerms","nodeType":"MemberAccess","referencedDeclaration":57272,"src":"2039:36:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}}],"id":58312,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2038:38:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}],"expression":{"id":58307,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1997:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2001:6:83","memberName":"decode","nodeType":"MemberAccess","src":"1997:10:83","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":58313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1997:80:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"nodeType":"VariableDeclarationStatement","src":"1914:163:83"},{"assignments":[58316],"declarations":[{"constant":false,"id":58316,"mutability":"mutable","name":"trancheAmount","nameLocation":"2095:13:83","nodeType":"VariableDeclaration","scope":58372,"src":"2087:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58315,"name":"uint256","nodeType":"ElementaryTypeName","src":"2087:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58318,"initialValue":{"hexValue":"30","id":58317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2111:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2087:25:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":58319,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58306,"src":"2126:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2151:16:83","memberName":"trancheOneAmount","nodeType":"MemberAccess","referencedDeclaration":57261,"src":"2126:41:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":58321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2170:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2126:45:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":58329,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58306,"src":"2265:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2290:16:83","memberName":"trancheTwoAmount","nodeType":"MemberAccess","referencedDeclaration":57265,"src":"2265:41:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":58331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2309:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2265:45:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":58339,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58306,"src":"2404:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2429:18:83","memberName":"trancheThreeAmount","nodeType":"MemberAccess","referencedDeclaration":57269,"src":"2404:43:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":58341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2450:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2404:47:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58349,"nodeType":"IfStatement","src":"2400:137:83","trueBody":{"id":58348,"nodeType":"Block","src":"2453:84:83","statements":[{"expression":{"id":58346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58343,"name":"trancheAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58316,"src":"2467:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":58344,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58306,"src":"2483:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2508:18:83","memberName":"trancheThreeAmount","nodeType":"MemberAccess","referencedDeclaration":57269,"src":"2483:43:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2467:59:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58347,"nodeType":"ExpressionStatement","src":"2467:59:83"}]}},"id":58350,"nodeType":"IfStatement","src":"2261:276:83","trueBody":{"id":58338,"nodeType":"Block","src":"2312:82:83","statements":[{"expression":{"id":58336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58333,"name":"trancheAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58316,"src":"2326:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":58334,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58306,"src":"2342:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58335,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2367:16:83","memberName":"trancheTwoAmount","nodeType":"MemberAccess","referencedDeclaration":57265,"src":"2342:41:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2326:57:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58337,"nodeType":"ExpressionStatement","src":"2326:57:83"}]}},"id":58351,"nodeType":"IfStatement","src":"2122:415:83","trueBody":{"id":58328,"nodeType":"Block","src":"2173:82:83","statements":[{"expression":{"id":58326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58323,"name":"trancheAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58316,"src":"2187:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":58324,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58306,"src":"2203:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2228:16:83","memberName":"trancheOneAmount","nodeType":"MemberAccess","referencedDeclaration":57261,"src":"2203:41:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2187:57:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58327,"nodeType":"ExpressionStatement","src":"2187:57:83"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":58352,"name":"trancheAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58316,"src":"2551:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":58353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2567:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2551:17:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":58370,"nodeType":"Block","src":"2653:85:83","statements":[{"expression":{"arguments":[{"id":58364,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58261,"src":"2687:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58365,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58232,"src":"2696:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58366,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58230,"src":"2707:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58367,"name":"portfolioId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58278,"src":"2714:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58363,"name":"initiateForeclosure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59111,"src":"2667:19:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,address,uint256)"}},"id":58368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2667:60:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58369,"nodeType":"ExpressionStatement","src":"2667:60:83"}]},"id":58371,"nodeType":"IfStatement","src":"2547:191:83","trueBody":{"id":58362,"nodeType":"Block","src":"2570:77:83","statements":[{"expression":{"arguments":[{"id":58356,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58230,"src":"2596:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58357,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58261,"src":"2603:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58358,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58234,"src":"2612:8:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":58359,"name":"trancheAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58316,"src":"2622:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58355,"name":"createClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58468,"src":"2584:11:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,uint256,string memory,uint256)"}},"id":58360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2584:52:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58361,"nodeType":"ExpressionStatement","src":"2584:52:83"}]}}]},"functionSelector":"efdcd2c5","implemented":true,"kind":"function","modifiers":[],"name":"startClaim","nameLocation":"1262:10:83","parameters":{"id":58235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58230,"mutability":"mutable","name":"user_","nameLocation":"1281:5:83","nodeType":"VariableDeclaration","scope":58373,"src":"1273:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58229,"name":"address","nodeType":"ElementaryTypeName","src":"1273:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58232,"mutability":"mutable","name":"uniqueId_","nameLocation":"1296:9:83","nodeType":"VariableDeclaration","scope":58373,"src":"1288:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58231,"name":"uint256","nodeType":"ElementaryTypeName","src":"1288:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58234,"mutability":"mutable","name":"pointer_","nameLocation":"1321:8:83","nodeType":"VariableDeclaration","scope":58373,"src":"1307:22:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":58233,"name":"string","nodeType":"ElementaryTypeName","src":"1307:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1272:58:83"},"returnParameters":{"id":58236,"nodeType":"ParameterList","parameters":[],"src":"1338:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58468,"nodeType":"FunctionDefinition","src":"2750:953:83","nodes":[],"body":{"id":58467,"nodeType":"Block","src":"2859:844:83","nodes":[],"statements":[{"expression":{"arguments":[{"id":58387,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58375,"src":"2894:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58384,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"2869:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":58386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2878:15:83","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"2869:24:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":58388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2869:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58389,"nodeType":"ExpressionStatement","src":"2869:31:83"},{"expression":{"arguments":[{"id":58393,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58377,"src":"2932:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58390,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"2910:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":58392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2919:12:83","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"2910:21:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":58394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2910:30:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58395,"nodeType":"ExpressionStatement","src":"2910:30:83"},{"assignments":[58397],"declarations":[{"constant":false,"id":58397,"mutability":"mutable","name":"protectionKey","nameLocation":"2958:13:83","nodeType":"VariableDeclaration","scope":58467,"src":"2950:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58396,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2950:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58406,"initialValue":{"arguments":[{"id":58399,"name":"USER_ID_PROTECTIONID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71231,"src":"2984:20:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":58402,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58375,"src":"3017:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58403,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58377,"src":"3024:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58400,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3006:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58401,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3010:6:83","memberName":"encode","nodeType":"MemberAccess","src":"3006:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3006:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58398,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"2974:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":58405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2974:59:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2950:83:83"},{"assignments":[58408],"declarations":[{"constant":false,"id":58408,"mutability":"mutable","name":"protectionId_","nameLocation":"3051:13:83","nodeType":"VariableDeclaration","scope":58467,"src":"3043:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58407,"name":"uint256","nodeType":"ElementaryTypeName","src":"3043:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58413,"initialValue":{"arguments":[{"id":58411,"name":"protectionKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58397,"src":"3091:13:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58409,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"3067:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":58410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3083:7:83","memberName":"getUint","nodeType":"MemberAccess","referencedDeclaration":67286,"src":"3067:23:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":58412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3067:38:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3043:62:83"},{"assignments":[58418],"declarations":[{"constant":false,"id":58418,"mutability":"mutable","name":"supplyDetails","nameLocation":"3143:13:83","nodeType":"VariableDeclaration","scope":58467,"src":"3115:41:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":58417,"nodeType":"UserDefinedTypeName","pathNode":{"id":58416,"name":"ILoan.LoanSupplyData","nameLocations":["3115:5:83","3121:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"3115:20:83"},"referencedDeclaration":56003,"src":"3115:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"id":58423,"initialValue":{"arguments":[{"id":58420,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58375,"src":"3173:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58421,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58377,"src":"3180:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58419,"name":"getSupplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59296,"src":"3159:13:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanSupplyData_$56003_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanSupplyData memory)"}},"id":58422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3159:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"nodeType":"VariableDeclarationStatement","src":"3115:73:83"},{"assignments":[58425],"declarations":[{"constant":false,"id":58425,"mutability":"mutable","name":"claimData","nameLocation":"3211:9:83","nodeType":"VariableDeclaration","scope":58467,"src":"3198:22:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58424,"name":"bytes","nodeType":"ElementaryTypeName","src":"3198:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58432,"initialValue":{"arguments":[{"expression":{"id":58428,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58418,"src":"3234:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3248:17:83","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"3234:31:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58430,"name":"trancheAmount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58381,"src":"3267:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58426,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3223:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3227:6:83","memberName":"encode","nodeType":"MemberAccess","src":"3223:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3223:59:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3198:84:83"},{"assignments":[58434],"declarations":[{"constant":false,"id":58434,"mutability":"mutable","name":"createClaimData","nameLocation":"3305:15:83","nodeType":"VariableDeclaration","scope":58467,"src":"3292:28:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58433,"name":"bytes","nodeType":"ElementaryTypeName","src":"3292:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58443,"initialValue":{"arguments":[{"hexValue":"637265617465436c61696d2862797465732c616464726573732c75696e743235362c75696e7432353629","id":58437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3360:44:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_e81bdb0df4613ecab9f442667f2acfb4b898ffaac2d2690974015d8b36c402a7","typeString":"literal_string \"createClaim(bytes,address,uint256,uint256)\""},"value":"createClaim(bytes,address,uint256,uint256)"},{"id":58438,"name":"claimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58425,"src":"3406:9:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58439,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58375,"src":"3417:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58440,"name":"protectionId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58408,"src":"3424:13:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58441,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58377,"src":"3439:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e81bdb0df4613ecab9f442667f2acfb4b898ffaac2d2690974015d8b36c402a7","typeString":"literal_string \"createClaim(bytes,address,uint256,uint256)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58435,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3323:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3327:19:83","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3323:23:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":58442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3323:133:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3292:164:83"},{"assignments":[58445],"declarations":[{"constant":false,"id":58445,"mutability":"mutable","name":"success","nameLocation":"3471:7:83","nodeType":"VariableDeclaration","scope":58467,"src":"3466:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":58444,"name":"bool","nodeType":"ElementaryTypeName","src":"3466:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":58454,"initialValue":{"arguments":[{"hexValue":"437265617465436c61696d416374696f6e","id":58447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3506:19:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ea56c60471fa0e889f9b9c5205c273e4187db519623326728d0a79167909ef8","typeString":"literal_string \"CreateClaimAction\""},"value":"CreateClaimAction"},{"hexValue":"30","id":58448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3527:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":58449,"name":"createClaimData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58434,"src":"3530:15:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":58450,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"3547:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":58451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3552:9:83","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"3547:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":58452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3562:4:83","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"3547:19:83","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ea56c60471fa0e889f9b9c5205c273e4187db519623326728d0a79167909ef8","typeString":"literal_string \"CreateClaimAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":58446,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"3481:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":58453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3481:86:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3466:101:83"},{"expression":{"arguments":[{"id":58456,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58445,"src":"3585:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20437265617465436c61696d416374696f6e206661696c6564","id":58457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3594:31:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_447b210161c87699d5a21c440801e241476cf82571680c863d7d76d9b07b8aa7","typeString":"literal_string \"ERR: CreateClaimAction failed\""},"value":"ERR: CreateClaimAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_447b210161c87699d5a21c440801e241476cf82571680c863d7d76d9b07b8aa7","typeString":"literal_string \"ERR: CreateClaimAction failed\""}],"id":58455,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3577:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3577:49:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58459,"nodeType":"ExpressionStatement","src":"3577:49:83"},{"expression":{"arguments":[{"id":58461,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58375,"src":"3655:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58462,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58377,"src":"3662:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58463,"name":"trancheAmount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58381,"src":"3671:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58464,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58379,"src":"3687:8:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":58460,"name":"prepareRequestData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58529,"src":"3636:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,uint256,string memory)"}},"id":58465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3636:60:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58466,"nodeType":"ExpressionStatement","src":"3636:60:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"createClaim","nameLocation":"2759:11:83","parameters":{"id":58382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58375,"mutability":"mutable","name":"user_","nameLocation":"2779:5:83","nodeType":"VariableDeclaration","scope":58468,"src":"2771:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58374,"name":"address","nodeType":"ElementaryTypeName","src":"2771:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58377,"mutability":"mutable","name":"loanId_","nameLocation":"2794:7:83","nodeType":"VariableDeclaration","scope":58468,"src":"2786:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58376,"name":"uint256","nodeType":"ElementaryTypeName","src":"2786:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58379,"mutability":"mutable","name":"pointer_","nameLocation":"2817:8:83","nodeType":"VariableDeclaration","scope":58468,"src":"2803:22:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":58378,"name":"string","nodeType":"ElementaryTypeName","src":"2803:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":58381,"mutability":"mutable","name":"trancheAmount_","nameLocation":"2835:14:83","nodeType":"VariableDeclaration","scope":58468,"src":"2827:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58380,"name":"uint256","nodeType":"ElementaryTypeName","src":"2827:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2770:80:83"},"returnParameters":{"id":58383,"nodeType":"ParameterList","parameters":[],"src":"2859:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":58529,"nodeType":"FunctionDefinition","src":"3709:789:83","nodes":[],"body":{"id":58528,"nodeType":"Block","src":"3875:623:83","nodes":[],"statements":[{"assignments":[58483],"declarations":[{"constant":false,"id":58483,"mutability":"mutable","name":"supplyDetails","nameLocation":"3913:13:83","nodeType":"VariableDeclaration","scope":58528,"src":"3885:41:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":58482,"nodeType":"UserDefinedTypeName","pathNode":{"id":58481,"name":"ILoan.LoanSupplyData","nameLocations":["3885:5:83","3891:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"3885:20:83"},"referencedDeclaration":56003,"src":"3885:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"id":58488,"initialValue":{"arguments":[{"id":58485,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58470,"src":"3943:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58486,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58472,"src":"3950:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58484,"name":"getSupplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59296,"src":"3929:13:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanSupplyData_$56003_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanSupplyData memory)"}},"id":58487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3929:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"nodeType":"VariableDeclarationStatement","src":"3885:73:83"},{"assignments":[58490],"declarations":[{"constant":false,"id":58490,"mutability":"mutable","name":"usdAmountOfToken","nameLocation":"3976:16:83","nodeType":"VariableDeclaration","scope":58528,"src":"3968:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58489,"name":"uint256","nodeType":"ElementaryTypeName","src":"3968:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58499,"initialValue":{"arguments":[{"expression":{"id":58492,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58483,"src":"4023:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4037:17:83","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"4023:31:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":58494,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58483,"src":"4056:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58495,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4070:7:83","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":56002,"src":"4056:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":58496,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58483,"src":"4079:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4093:8:83","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"4079:22:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58491,"name":"fetchTokenPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59408,"src":"4007:15:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256) view returns (uint256)"}},"id":58498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4007:95:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3968:134:83"},{"assignments":[58501],"declarations":[{"constant":false,"id":58501,"mutability":"mutable","name":"tokenAmount","nameLocation":"4120:11:83","nodeType":"VariableDeclaration","scope":58528,"src":"4112:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58500,"name":"uint256","nodeType":"ElementaryTypeName","src":"4112:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58516,"initialValue":{"arguments":[{"id":58504,"name":"trancheAmount_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58474,"src":"4196:14:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58505,"name":"usdAmountOfToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58490,"src":"4224:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":58506,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"4254:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":58507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4265:16:83","memberName":"CHAINLINK_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74236,"src":"4254:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":58508,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"4295:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":58509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4306:10:83","memberName":"USD_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74233,"src":"4295:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":58510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4330:2:83","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"expression":{"id":58511,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58483,"src":"4337:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4351:8:83","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56000,"src":"4337:22:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":58513,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4336:24:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4330:30:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58502,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"4134:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":58503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4145:37:83","memberName":"convertAToBUsingConversionBInTermsOfA","nodeType":"MemberAccess","referencedDeclaration":74278,"src":"4134:48:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":58515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4134:236:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4112:258:83"},{"expression":{"arguments":[{"id":58518,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58501,"src":"4398:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":58519,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58483,"src":"4411:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4425:17:83","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"4411:31:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58521,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58470,"src":"4444:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":58522,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58483,"src":"4451:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4465:6:83","memberName":"lender","nodeType":"MemberAccess","referencedDeclaration":55994,"src":"4451:20:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":58524,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58476,"src":"4473:8:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":58525,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58472,"src":"4483:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58517,"name":"requestCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58619,"src":"4380:17:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (uint256,address,address,string memory,string memory,uint256)"}},"id":58526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4380:111:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58527,"nodeType":"ExpressionStatement","src":"4380:111:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"prepareRequestData","nameLocation":"3718:18:83","parameters":{"id":58477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58470,"mutability":"mutable","name":"user_","nameLocation":"3754:5:83","nodeType":"VariableDeclaration","scope":58529,"src":"3746:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58469,"name":"address","nodeType":"ElementaryTypeName","src":"3746:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58472,"mutability":"mutable","name":"loanId_","nameLocation":"3777:7:83","nodeType":"VariableDeclaration","scope":58529,"src":"3769:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58471,"name":"uint256","nodeType":"ElementaryTypeName","src":"3769:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58474,"mutability":"mutable","name":"trancheAmount_","nameLocation":"3802:14:83","nodeType":"VariableDeclaration","scope":58529,"src":"3794:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58473,"name":"uint256","nodeType":"ElementaryTypeName","src":"3794:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58476,"mutability":"mutable","name":"pointer_","nameLocation":"3840:8:83","nodeType":"VariableDeclaration","scope":58529,"src":"3826:22:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":58475,"name":"string","nodeType":"ElementaryTypeName","src":"3826:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3736:118:83"},"returnParameters":{"id":58478,"nodeType":"ParameterList","parameters":[],"src":"3875:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":58619,"nodeType":"FunctionDefinition","src":"4504:996:83","nodes":[],"body":{"id":58618,"nodeType":"Block","src":"4720:780:83","nodes":[],"statements":[{"expression":{"arguments":[{"id":58547,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58531,"src":"4752:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58544,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"4730:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":58546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4739:12:83","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"4730:21:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":58548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4730:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58549,"nodeType":"ExpressionStatement","src":"4730:29:83"},{"assignments":[58551],"declarations":[{"constant":false,"id":58551,"mutability":"mutable","name":"streamVaultKey","nameLocation":"4777:14:83","nodeType":"VariableDeclaration","scope":58618,"src":"4769:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4769:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58559,"initialValue":{"arguments":[{"id":58553,"name":"ADDRESS_NAME_STREAMVAULT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71288,"src":"4804:24:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":58556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4841:3:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":58554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4830:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4834:6:83","memberName":"encode","nodeType":"MemberAccess","src":"4830:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4830:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58552,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"4794:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":58558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4794:52:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4769:77:83"},{"assignments":[58561],"declarations":[{"constant":false,"id":58561,"mutability":"mutable","name":"streamVaultAddress","nameLocation":"4864:18:83","nodeType":"VariableDeclaration","scope":58618,"src":"4856:26:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58560,"name":"address","nodeType":"ElementaryTypeName","src":"4856:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58566,"initialValue":{"arguments":[{"id":58564,"name":"streamVaultKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58551,"src":"4912:14:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58562,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"4885:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":58563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4901:10:83","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"4885:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":58565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4885:42:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4856:71:83"},{"assignments":[58568],"declarations":[{"constant":false,"id":58568,"mutability":"mutable","name":"transferData","nameLocation":"4950:12:83","nodeType":"VariableDeclaration","scope":58618,"src":"4937:25:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58567,"name":"bytes","nodeType":"ElementaryTypeName","src":"4937:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58584,"initialValue":{"arguments":[{"hexValue":"7472616e73666572546f6b656e28616464726573732c616464726573732c616464726573732c75696e7432353629","id":58571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5002:48:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c54de4f88e70d8b8516170116bb3a4f0d56441744f63fa5dccdbab48861ab81","typeString":"literal_string \"transferToken(address,address,address,uint256)\""},"value":"transferToken(address,address,address,uint256)"},{"id":58572,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58533,"src":"5064:6:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"arguments":[{"id":58576,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58535,"src":"5111:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58577,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58537,"src":"5118:11:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":58578,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58541,"src":"5131:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58575,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59360,"src":"5092:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":58579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5092:47:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58574,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5084:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":58573,"name":"address","nodeType":"ElementaryTypeName","src":"5084:8:83","stateMutability":"payable","typeDescriptions":{}}},"id":58580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5084:56:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":58581,"name":"streamVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58561,"src":"5154:18:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58582,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58531,"src":"5186:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c54de4f88e70d8b8516170116bb3a4f0d56441744f63fa5dccdbab48861ab81","typeString":"literal_string \"transferToken(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58569,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4965:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4969:19:83","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4965:23:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":58583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4965:237:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4937:265:83"},{"assignments":[58586],"declarations":[{"constant":false,"id":58586,"mutability":"mutable","name":"success","nameLocation":"5217:7:83","nodeType":"VariableDeclaration","scope":58618,"src":"5212:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":58585,"name":"bool","nodeType":"ElementaryTypeName","src":"5212:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":58595,"initialValue":{"arguments":[{"hexValue":"5472616e73666572546f6b656e416374696f6e","id":58588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5252:21:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0e2518d01e9dcc67c7bfe96295c342b3c210dbf41b28f5f48db5f395501d52f","typeString":"literal_string \"TransferTokenAction\""},"value":"TransferTokenAction"},{"hexValue":"30","id":58589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5275:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":58590,"name":"transferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58568,"src":"5278:12:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":58591,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"5292:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":58592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5297:9:83","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"5292:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":58593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5307:4:83","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"5292:19:83","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0e2518d01e9dcc67c7bfe96295c342b3c210dbf41b28f5f48db5f395501d52f","typeString":"literal_string \"TransferTokenAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":58587,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"5227:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":58594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5227:85:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5212:100:83"},{"expression":{"arguments":[{"id":58597,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58586,"src":"5330:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205472616e73666572546f6b656e416374696f6e206661696c6564","id":58598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5339:33:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc7018dc2c87b29e4aa58c438d616250c98ee2296837f76dc3d8a354ae82532f","typeString":"literal_string \"ERR: TransferTokenAction failed\""},"value":"ERR: TransferTokenAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bc7018dc2c87b29e4aa58c438d616250c98ee2296837f76dc3d8a354ae82532f","typeString":"literal_string \"ERR: TransferTokenAction failed\""}],"id":58596,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5322:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5322:51:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58600,"nodeType":"ExpressionStatement","src":"5322:51:83"},{"expression":{"arguments":[{"arguments":[{"id":58604,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58533,"src":"5409:6:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58605,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58531,"src":"5417:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":58609,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58539,"src":"5452:8:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":58608,"name":"fetchMarketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59317,"src":"5433:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) view returns (address)"}},"id":58610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5433:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5425:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58606,"name":"address","nodeType":"ElementaryTypeName","src":"5425:7:83","typeDescriptions":{}}},"id":58611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5425:37:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58612,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58535,"src":"5464:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58602,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5398:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5402:6:83","memberName":"encode","nodeType":"MemberAccess","src":"5398:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5398:72:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58614,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58537,"src":"5472:11:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":58615,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58541,"src":"5485:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58601,"name":"supplyToLender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58724,"src":"5383:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes memory,string memory,uint256)"}},"id":58616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5383:110:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58617,"nodeType":"ExpressionStatement","src":"5383:110:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"requestCollateral","nameLocation":"4513:17:83","parameters":{"id":58542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58531,"mutability":"mutable","name":"value_","nameLocation":"4548:6:83","nodeType":"VariableDeclaration","scope":58619,"src":"4540:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58530,"name":"uint256","nodeType":"ElementaryTypeName","src":"4540:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58533,"mutability":"mutable","name":"token_","nameLocation":"4572:6:83","nodeType":"VariableDeclaration","scope":58619,"src":"4564:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58532,"name":"address","nodeType":"ElementaryTypeName","src":"4564:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58535,"mutability":"mutable","name":"user_","nameLocation":"4596:5:83","nodeType":"VariableDeclaration","scope":58619,"src":"4588:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58534,"name":"address","nodeType":"ElementaryTypeName","src":"4588:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58537,"mutability":"mutable","name":"lenderName_","nameLocation":"4625:11:83","nodeType":"VariableDeclaration","scope":58619,"src":"4611:25:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":58536,"name":"string","nodeType":"ElementaryTypeName","src":"4611:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":58539,"mutability":"mutable","name":"pointer_","nameLocation":"4660:8:83","nodeType":"VariableDeclaration","scope":58619,"src":"4646:22:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":58538,"name":"string","nodeType":"ElementaryTypeName","src":"4646:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":58541,"mutability":"mutable","name":"loanId_","nameLocation":"4686:7:83","nodeType":"VariableDeclaration","scope":58619,"src":"4678:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58540,"name":"uint256","nodeType":"ElementaryTypeName","src":"4678:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4530:169:83"},"returnParameters":{"id":58543,"nodeType":"ParameterList","parameters":[],"src":"4720:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":58724,"nodeType":"FunctionDefinition","src":"5506:967:83","nodes":[],"body":{"id":58723,"nodeType":"Block","src":"5608:865:83","nodes":[],"statements":[{"assignments":[58629,58631,null,58633],"declarations":[{"constant":false,"id":58629,"mutability":"mutable","name":"collateralToken","nameLocation":"5627:15:83","nodeType":"VariableDeclaration","scope":58723,"src":"5619:23:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58628,"name":"address","nodeType":"ElementaryTypeName","src":"5619:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58631,"mutability":"mutable","name":"amount","nameLocation":"5652:6:83","nodeType":"VariableDeclaration","scope":58723,"src":"5644:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58630,"name":"uint256","nodeType":"ElementaryTypeName","src":"5644:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,{"constant":false,"id":58633,"mutability":"mutable","name":"user","nameLocation":"5669:4:83","nodeType":"VariableDeclaration","scope":58723,"src":"5661:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58632,"name":"address","nodeType":"ElementaryTypeName","src":"5661:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58647,"initialValue":{"arguments":[{"id":58636,"name":"supplyData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58621,"src":"5700:11:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":58638,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5714:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58637,"name":"address","nodeType":"ElementaryTypeName","src":"5714:7:83","typeDescriptions":{}}},{"id":58640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5723:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":58639,"name":"uint256","nodeType":"ElementaryTypeName","src":"5723:7:83","typeDescriptions":{}}},{"id":58642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5732:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58641,"name":"address","nodeType":"ElementaryTypeName","src":"5732:7:83","typeDescriptions":{}}},{"id":58644,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5741:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58643,"name":"address","nodeType":"ElementaryTypeName","src":"5741:7:83","typeDescriptions":{}}}],"id":58645,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5713:36:83","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$","typeString":"tuple(type(address),type(uint256),type(address),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$","typeString":"tuple(type(address),type(uint256),type(address),type(address))"}],"expression":{"id":58634,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5689:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5693:6:83","memberName":"decode","nodeType":"MemberAccess","src":"5689:10:83","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":58646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5689:61:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_uint256_$_t_address_payable_$_t_address_payable_$","typeString":"tuple(address payable,uint256,address payable,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"5618:132:83"},{"assignments":[58649],"declarations":[{"constant":false,"id":58649,"mutability":"mutable","name":"key","nameLocation":"5768:3:83","nodeType":"VariableDeclaration","scope":58723,"src":"5760:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5760:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58658,"initialValue":{"arguments":[{"id":58651,"name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71336,"src":"5784:37:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":58654,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58623,"src":"5834:11:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":58655,"name":"collateralToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58629,"src":"5847:15:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58652,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5823:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5827:6:83","memberName":"encode","nodeType":"MemberAccess","src":"5823:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5823:40:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58650,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"5774:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":58657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5774:90:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5760:104:83"},{"expression":{"arguments":[{"arguments":[{"id":58662,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58649,"src":"5906:3:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58660,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"5882:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":58661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5898:7:83","memberName":"getBool","nodeType":"MemberAccess","referencedDeclaration":67310,"src":"5882:23:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":58663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5882:28:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a204e6f7420616e20617070726f76656420636f6c6c61746572616c2074797065","id":58664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5912:38:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_b167d14ad95272fcea6a06abc6c9be4fa092b91275831cba709ff0af93b0aa81","typeString":"literal_string \"ERR: Not an approved collateral type\""},"value":"ERR: Not an approved collateral type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b167d14ad95272fcea6a06abc6c9be4fa092b91275831cba709ff0af93b0aa81","typeString":"literal_string \"ERR: Not an approved collateral type\""}],"id":58659,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5874:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5874:77:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58666,"nodeType":"ExpressionStatement","src":"5874:77:83"},{"assignments":[58669],"declarations":[{"constant":false,"id":58669,"mutability":"mutable","name":"token","nameLocation":"5968:5:83","nodeType":"VariableDeclaration","scope":58723,"src":"5961:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"},"typeName":{"id":58668,"nodeType":"UserDefinedTypeName","pathNode":{"id":58667,"name":"IERC20","nameLocations":["5961:6:83"],"nodeType":"IdentifierPath","referencedDeclaration":45751,"src":"5961:6:83"},"referencedDeclaration":45751,"src":"5961:6:83","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"visibility":"internal"}],"id":58673,"initialValue":{"arguments":[{"id":58671,"name":"collateralToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58629,"src":"5983:15:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58670,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45751,"src":"5976:6:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$45751_$","typeString":"type(contract IERC20)"}},"id":58672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5976:23:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"5961:38:83"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":58680,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58633,"src":"6059:4:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58681,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58623,"src":"6065:11:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":58682,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58625,"src":"6078:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58679,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59360,"src":"6040:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":58683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6040:46:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6032:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58677,"name":"address","nodeType":"ElementaryTypeName","src":"6032:7:83","typeDescriptions":{}}},"id":58684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6032:55:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58685,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58631,"src":"6089:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58675,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58669,"src":"6018:5:83","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$45751","typeString":"contract IERC20"}},"id":58676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6024:7:83","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":45738,"src":"6018:13:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":58686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:78:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20417070726f7665206661696c6564","id":58687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6098:21:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_0664df558701d0314e9e85d04e26f503105d877e0388e16d1704d4b3f9985e71","typeString":"literal_string \"ERR: Approve failed\""},"value":"ERR: Approve failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0664df558701d0314e9e85d04e26f503105d877e0388e16d1704d4b3f9985e71","typeString":"literal_string \"ERR: Approve failed\""}],"id":58674,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6010:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6010:110:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58689,"nodeType":"ExpressionStatement","src":"6010:110:83"},{"assignments":[58691],"declarations":[{"constant":false,"id":58691,"mutability":"mutable","name":"supData","nameLocation":"6143:7:83","nodeType":"VariableDeclaration","scope":58723,"src":"6130:20:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58690,"name":"bytes","nodeType":"ElementaryTypeName","src":"6130:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58706,"initialValue":{"arguments":[{"hexValue":"737570706c792862797465732c75696e743235362c6164647265737329","id":58694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6190:31:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_b12f7774adaebe2c7722e2d9e8fff7bbf7e1c62a83121d29140c21b339f41e49","typeString":"literal_string \"supply(bytes,uint256,address)\""},"value":"supply(bytes,uint256,address)"},{"id":58695,"name":"supplyData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58621,"src":"6223:11:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":58696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6236:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"arguments":[{"id":58700,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58633,"src":"6266:4:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58701,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58623,"src":"6272:11:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":58702,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58625,"src":"6285:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58699,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59360,"src":"6247:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":58703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6247:46:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":58698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6239:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":58697,"name":"address","nodeType":"ElementaryTypeName","src":"6239:7:83","typeDescriptions":{}}},"id":58704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6239:55:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b12f7774adaebe2c7722e2d9e8fff7bbf7e1c62a83121d29140c21b339f41e49","typeString":"literal_string \"supply(bytes,uint256,address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58692,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6153:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6157:19:83","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6153:23:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":58705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6153:151:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6130:174:83"},{"assignments":[58708],"declarations":[{"constant":false,"id":58708,"mutability":"mutable","name":"success","nameLocation":"6319:7:83","nodeType":"VariableDeclaration","scope":58723,"src":"6314:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":58707,"name":"bool","nodeType":"ElementaryTypeName","src":"6314:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":58717,"initialValue":{"arguments":[{"hexValue":"537570706c79416374696f6e","id":58710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6354:14:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_abb8274d532841fbcea076fe6b40f8cf46a78317e505f65db89a5c9426846240","typeString":"literal_string \"SupplyAction\""},"value":"SupplyAction"},{"hexValue":"30","id":58711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6370:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":58712,"name":"supData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58691,"src":"6373:7:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":58713,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"6382:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":58714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6387:9:83","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"6382:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":58715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6397:4:83","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"6382:19:83","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abb8274d532841fbcea076fe6b40f8cf46a78317e505f65db89a5c9426846240","typeString":"literal_string \"SupplyAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":58709,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"6329:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":58716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6329:73:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6314:88:83"},{"expression":{"arguments":[{"id":58719,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58708,"src":"6420:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20537570706c79416374696f6e20657865637574696f6e206661696c6564","id":58720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6429:36:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e43b15588bc4385b5b4474e2f3b41a7d5bf2a566067de7955de24da5633733b","typeString":"literal_string \"ERR: SupplyAction execution failed\""},"value":"ERR: SupplyAction execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9e43b15588bc4385b5b4474e2f3b41a7d5bf2a566067de7955de24da5633733b","typeString":"literal_string \"ERR: SupplyAction execution failed\""}],"id":58718,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6412:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":58721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6412:54:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58722,"nodeType":"ExpressionStatement","src":"6412:54:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"supplyToLender","nameLocation":"5515:14:83","parameters":{"id":58626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58621,"mutability":"mutable","name":"supplyData_","nameLocation":"5543:11:83","nodeType":"VariableDeclaration","scope":58724,"src":"5530:24:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58620,"name":"bytes","nodeType":"ElementaryTypeName","src":"5530:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":58623,"mutability":"mutable","name":"lenderName_","nameLocation":"5570:11:83","nodeType":"VariableDeclaration","scope":58724,"src":"5556:25:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":58622,"name":"string","nodeType":"ElementaryTypeName","src":"5556:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":58625,"mutability":"mutable","name":"loanId_","nameLocation":"5591:7:83","nodeType":"VariableDeclaration","scope":58724,"src":"5583:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58624,"name":"uint256","nodeType":"ElementaryTypeName","src":"5583:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5529:70:83"},"returnParameters":{"id":58627,"nodeType":"ParameterList","parameters":[],"src":"5608:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":58832,"nodeType":"FunctionDefinition","src":"6479:1283:83","nodes":[],"body":{"id":58831,"nodeType":"Block","src":"6543:1219:83","nodes":[],"statements":[{"assignments":[58732],"declarations":[{"constant":false,"id":58732,"mutability":"mutable","name":"key","nameLocation":"6561:3:83","nodeType":"VariableDeclaration","scope":58831,"src":"6553:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58731,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6553:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58741,"initialValue":{"arguments":[{"id":58734,"name":"USER_ID_PROTECTION_FINANCIAL_TERMS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71243,"src":"6577:34:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":58737,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58726,"src":"6624:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58738,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58728,"src":"6631:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58735,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6613:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6617:6:83","memberName":"encode","nodeType":"MemberAccess","src":"6613:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6613:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58733,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"6567:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":58740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6567:73:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6553:87:83"},{"assignments":[58743],"declarations":[{"constant":false,"id":58743,"mutability":"mutable","name":"protectionFinancialTermsData","nameLocation":"6663:28:83","nodeType":"VariableDeclaration","scope":58831,"src":"6650:41:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58742,"name":"bytes","nodeType":"ElementaryTypeName","src":"6650:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58748,"initialValue":{"arguments":[{"id":58746,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58732,"src":"6719:3:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58744,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"6694:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":58745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6710:8:83","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"6694:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":58747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6694:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6650:73:83"},{"expression":{"arguments":[{"id":58752,"name":"protectionFinancialTermsData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58743,"src":"6756:28:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":58749,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"6733:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":58751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6742:13:83","memberName":"validateBytes","nodeType":"MemberAccess","referencedDeclaration":75416,"src":"6733:22:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":58753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6733:52:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58754,"nodeType":"ExpressionStatement","src":"6733:52:83"},{"assignments":[58759],"declarations":[{"constant":false,"id":58759,"mutability":"mutable","name":"borrowDetails","nameLocation":"6823:13:83","nodeType":"VariableDeclaration","scope":58831,"src":"6795:41:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData"},"typeName":{"id":58758,"nodeType":"UserDefinedTypeName","pathNode":{"id":58757,"name":"ILoan.LoanBorrowData","nameLocations":["6795:5:83","6801:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":56034,"src":"6795:20:83"},"referencedDeclaration":56034,"src":"6795:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_storage_ptr","typeString":"struct ILoan.LoanBorrowData"}},"visibility":"internal"}],"id":58764,"initialValue":{"arguments":[{"id":58761,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58726,"src":"6853:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58762,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58728,"src":"6860:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58760,"name":"getBorrowData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59259,"src":"6839:13:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanBorrowData_$56034_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanBorrowData memory)"}},"id":58763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6839:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"nodeType":"VariableDeclarationStatement","src":"6795:73:83"},{"assignments":[58769],"declarations":[{"constant":false,"id":58769,"mutability":"mutable","name":"supplyDetails","nameLocation":"6906:13:83","nodeType":"VariableDeclaration","scope":58831,"src":"6878:41:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":58768,"nodeType":"UserDefinedTypeName","pathNode":{"id":58767,"name":"ILoan.LoanSupplyData","nameLocations":["6878:5:83","6884:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"6878:20:83"},"referencedDeclaration":56003,"src":"6878:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"id":58774,"initialValue":{"arguments":[{"id":58771,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58726,"src":"6936:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58772,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58728,"src":"6943:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58770,"name":"getSupplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59296,"src":"6922:13:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanSupplyData_$56003_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanSupplyData memory)"}},"id":58773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6922:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"nodeType":"VariableDeclarationStatement","src":"6878:73:83"},{"id":58830,"nodeType":"Block","src":"6962:794:83","statements":[{"assignments":[58776],"declarations":[{"constant":false,"id":58776,"mutability":"mutable","name":"usdAmountOfToken","nameLocation":"6984:16:83","nodeType":"VariableDeclaration","scope":58830,"src":"6976:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58775,"name":"uint256","nodeType":"ElementaryTypeName","src":"6976:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58785,"initialValue":{"arguments":[{"expression":{"id":58778,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58759,"src":"7035:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":58779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7049:16:83","memberName":"debtTokenAddress","nodeType":"MemberAccess","referencedDeclaration":56027,"src":"7035:30:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":58780,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58769,"src":"7067:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7081:7:83","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":56002,"src":"7067:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":58782,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58759,"src":"7090:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":58783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7104:8:83","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56033,"src":"7090:22:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":58777,"name":"fetchTokenPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59408,"src":"7019:15:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256) view returns (uint256)"}},"id":58784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7019:94:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6976:137:83"},{"assignments":[58790],"declarations":[{"constant":false,"id":58790,"mutability":"mutable","name":"protectionFinancialTerms","nameLocation":"7171:24:83","nodeType":"VariableDeclaration","scope":58830,"src":"7127:68:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"},"typeName":{"id":58789,"nodeType":"UserDefinedTypeName","pathNode":{"id":58788,"name":"IProtection.ProtectionFinancialTerms","nameLocations":["7127:11:83","7139:24:83"],"nodeType":"IdentifierPath","referencedDeclaration":57272,"src":"7127:36:83"},"referencedDeclaration":57272,"src":"7127:36:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_storage_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"}},"visibility":"internal"}],"id":58798,"initialValue":{"arguments":[{"id":58793,"name":"protectionFinancialTermsData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58743,"src":"7225:28:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":58794,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"7256:11:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":58795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7268:24:83","memberName":"ProtectionFinancialTerms","nodeType":"MemberAccess","referencedDeclaration":57272,"src":"7256:36:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}}],"id":58796,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7255:38:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}],"expression":{"id":58791,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7214:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7218:6:83","memberName":"decode","nodeType":"MemberAccess","src":"7214:10:83","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":58797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7214:80:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"nodeType":"VariableDeclarationStatement","src":"7127:167:83"},{"assignments":[58800],"declarations":[{"constant":false,"id":58800,"mutability":"mutable","name":"trancheFee","nameLocation":"7317:10:83","nodeType":"VariableDeclaration","scope":58830,"src":"7309:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58799,"name":"uint256","nodeType":"ElementaryTypeName","src":"7309:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58806,"initialValue":{"arguments":[{"id":58802,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58726,"src":"7353:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58803,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58728,"src":"7360:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58804,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58790,"src":"7369:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}],"id":58801,"name":"updateTrancheAndGetFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58918,"src":"7330:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_struct$_ProtectionFinancialTerms_$57272_memory_ptr_$returns$_t_uint256_$","typeString":"function (address,uint256,struct IProtection.ProtectionFinancialTerms memory) returns (uint256)"}},"id":58805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7330:64:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7309:85:83"},{"assignments":[58808],"declarations":[{"constant":false,"id":58808,"mutability":"mutable","name":"trancheFeeC","nameLocation":"7416:11:83","nodeType":"VariableDeclaration","scope":58830,"src":"7408:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58807,"name":"uint256","nodeType":"ElementaryTypeName","src":"7408:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58823,"initialValue":{"arguments":[{"id":58811,"name":"trancheFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58800,"src":"7496:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58812,"name":"usdAmountOfToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58776,"src":"7524:16:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":58813,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7558:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":58814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7569:16:83","memberName":"CHAINLINK_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74236,"src":"7558:27:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":58815,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7603:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":58816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7614:10:83","memberName":"USD_FACTOR","nodeType":"MemberAccess","referencedDeclaration":74233,"src":"7603:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":58821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":58817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7642:2:83","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"components":[{"expression":{"id":58818,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58759,"src":"7648:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":58819,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7662:8:83","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56033,"src":"7648:22:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":58820,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7647:24:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"7642:29:83","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":58809,"name":"Conversion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74379,"src":"7430:10:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Conversion_$74379_$","typeString":"type(library Conversion)"}},"id":58810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7441:37:83","memberName":"convertAToBUsingConversionBInTermsOfA","nodeType":"MemberAccess","referencedDeclaration":74278,"src":"7430:48:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (uint256)"}},"id":58822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7430:255:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7408:277:83"},{"expression":{"arguments":[{"id":58825,"name":"trancheFeeC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58808,"src":"7717:11:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":58826,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58726,"src":"7730:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58827,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58728,"src":"7737:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58824,"name":"borrowFromLender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59040,"src":"7700:16:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":58828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7700:45:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58829,"nodeType":"ExpressionStatement","src":"7700:45:83"}]}]},"functionSelector":"1c22eb86","implemented":true,"kind":"function","modifiers":[],"name":"processClaimFee","nameLocation":"6488:15:83","parameters":{"id":58729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58726,"mutability":"mutable","name":"user_","nameLocation":"6512:5:83","nodeType":"VariableDeclaration","scope":58832,"src":"6504:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58725,"name":"address","nodeType":"ElementaryTypeName","src":"6504:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58728,"mutability":"mutable","name":"loanId_","nameLocation":"6527:7:83","nodeType":"VariableDeclaration","scope":58832,"src":"6519:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58727,"name":"uint256","nodeType":"ElementaryTypeName","src":"6519:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6503:32:83"},"returnParameters":{"id":58730,"nodeType":"ParameterList","parameters":[],"src":"6543:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":58918,"nodeType":"FunctionDefinition","src":"7768:1195:83","nodes":[],"body":{"id":58917,"nodeType":"Block","src":"7978:985:83","nodes":[],"statements":[{"assignments":[58845],"declarations":[{"constant":false,"id":58845,"mutability":"mutable","name":"trancheFee","nameLocation":"7996:10:83","nodeType":"VariableDeclaration","scope":58917,"src":"7988:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58844,"name":"uint256","nodeType":"ElementaryTypeName","src":"7988:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":58847,"initialValue":{"hexValue":"30","id":58846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8009:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7988:22:83"},{"assignments":[58849],"declarations":[{"constant":false,"id":58849,"mutability":"mutable","name":"data","nameLocation":"8033:4:83","nodeType":"VariableDeclaration","scope":58917,"src":"8020:17:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58848,"name":"bytes","nodeType":"ElementaryTypeName","src":"8020:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":58854,"initialValue":{"arguments":[{"hexValue":"30","id":58852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8051:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":58850,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8040:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58851,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8044:6:83","memberName":"encode","nodeType":"MemberAccess","src":"8040:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8040:13:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8020:33:83"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":58855,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58839,"src":"8067:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8092:16:83","memberName":"trancheOneAmount","nodeType":"MemberAccess","referencedDeclaration":57261,"src":"8067:41:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":58857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8112:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8067:46:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":58874,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58839,"src":"8356:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8381:16:83","memberName":"trancheTwoAmount","nodeType":"MemberAccess","referencedDeclaration":57265,"src":"8356:41:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":58876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8401:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8356:46:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":58896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":58893,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58839,"src":"8645:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8670:18:83","memberName":"trancheThreeAmount","nodeType":"MemberAccess","referencedDeclaration":57269,"src":"8645:43:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":58895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8692:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8645:48:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":58912,"nodeType":"IfStatement","src":"8641:289:83","trueBody":{"id":58911,"nodeType":"Block","src":"8695:235:83","statements":[{"expression":{"id":58900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58897,"name":"trancheFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58845,"src":"8709:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":58898,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58839,"src":"8722:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8747:15:83","memberName":"trancheThreeFee","nodeType":"MemberAccess","referencedDeclaration":57271,"src":"8722:40:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8709:53:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58901,"nodeType":"ExpressionStatement","src":"8709:53:83"},{"expression":{"arguments":[{"id":58903,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58849,"src":"8825:4:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58904,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58834,"src":"8831:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58905,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58836,"src":"8838:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":58906,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"8847:11:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":58907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8859:25:83","memberName":"UpdateFinancialTermsField","nodeType":"MemberAccess","referencedDeclaration":57234,"src":"8847:37:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateFinancialTermsField_$57234_$","typeString":"type(enum IProtection.UpdateFinancialTermsField)"}},"id":58908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8885:20:83","memberName":"TRANCHE_THREE_AMOUNT","nodeType":"MemberAccess","referencedDeclaration":57232,"src":"8847:58:83","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}],"id":58902,"name":"_updateProtectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59451,"src":"8776:31:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_enum$_UpdateFinancialTermsField_$57234_$returns$__$","typeString":"function (bytes memory,address,uint256,enum IProtection.UpdateFinancialTermsField)"}},"id":58909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8776:143:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58910,"nodeType":"ExpressionStatement","src":"8776:143:83"}]}},"id":58913,"nodeType":"IfStatement","src":"8352:578:83","trueBody":{"id":58892,"nodeType":"Block","src":"8404:231:83","statements":[{"expression":{"id":58881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58878,"name":"trancheFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58845,"src":"8418:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":58879,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58839,"src":"8431:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8456:13:83","memberName":"trancheTwoFee","nodeType":"MemberAccess","referencedDeclaration":57267,"src":"8431:38:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8418:51:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58882,"nodeType":"ExpressionStatement","src":"8418:51:83"},{"expression":{"arguments":[{"id":58884,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58849,"src":"8532:4:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58885,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58834,"src":"8538:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58886,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58836,"src":"8545:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":58887,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"8554:11:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":58888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8566:25:83","memberName":"UpdateFinancialTermsField","nodeType":"MemberAccess","referencedDeclaration":57234,"src":"8554:37:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateFinancialTermsField_$57234_$","typeString":"type(enum IProtection.UpdateFinancialTermsField)"}},"id":58889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8592:18:83","memberName":"TRANCHE_TWO_AMOUNT","nodeType":"MemberAccess","referencedDeclaration":57231,"src":"8554:56:83","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}],"id":58883,"name":"_updateProtectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59451,"src":"8483:31:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_enum$_UpdateFinancialTermsField_$57234_$returns$__$","typeString":"function (bytes memory,address,uint256,enum IProtection.UpdateFinancialTermsField)"}},"id":58890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8483:141:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58891,"nodeType":"ExpressionStatement","src":"8483:141:83"}]}},"id":58914,"nodeType":"IfStatement","src":"8063:867:83","trueBody":{"id":58873,"nodeType":"Block","src":"8115:231:83","statements":[{"expression":{"id":58862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":58859,"name":"trancheFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58845,"src":"8129:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":58860,"name":"protectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58839,"src":"8142:24:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":58861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8167:13:83","memberName":"trancheOneFee","nodeType":"MemberAccess","referencedDeclaration":57263,"src":"8142:38:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8129:51:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":58863,"nodeType":"ExpressionStatement","src":"8129:51:83"},{"expression":{"arguments":[{"id":58865,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58849,"src":"8243:4:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":58866,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58834,"src":"8249:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58867,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58836,"src":"8256:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":58868,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"8265:11:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":58869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8277:25:83","memberName":"UpdateFinancialTermsField","nodeType":"MemberAccess","referencedDeclaration":57234,"src":"8265:37:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateFinancialTermsField_$57234_$","typeString":"type(enum IProtection.UpdateFinancialTermsField)"}},"id":58870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8303:18:83","memberName":"TRANCHE_ONE_AMOUNT","nodeType":"MemberAccess","referencedDeclaration":57230,"src":"8265:56:83","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}],"id":58864,"name":"_updateProtectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59451,"src":"8194:31:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_enum$_UpdateFinancialTermsField_$57234_$returns$__$","typeString":"function (bytes memory,address,uint256,enum IProtection.UpdateFinancialTermsField)"}},"id":58871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8194:141:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58872,"nodeType":"ExpressionStatement","src":"8194:141:83"}]}},{"expression":{"id":58915,"name":"trancheFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58845,"src":"8946:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":58843,"id":58916,"nodeType":"Return","src":"8939:17:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"updateTrancheAndGetFee","nameLocation":"7777:22:83","parameters":{"id":58840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58834,"mutability":"mutable","name":"user_","nameLocation":"7817:5:83","nodeType":"VariableDeclaration","scope":58918,"src":"7809:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58833,"name":"address","nodeType":"ElementaryTypeName","src":"7809:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58836,"mutability":"mutable","name":"loanId_","nameLocation":"7840:7:83","nodeType":"VariableDeclaration","scope":58918,"src":"7832:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58835,"name":"uint256","nodeType":"ElementaryTypeName","src":"7832:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58839,"mutability":"mutable","name":"protectionFinancialTerms","nameLocation":"7901:24:83","nodeType":"VariableDeclaration","scope":58918,"src":"7857:68:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"},"typeName":{"id":58838,"nodeType":"UserDefinedTypeName","pathNode":{"id":58837,"name":"IProtection.ProtectionFinancialTerms","nameLocations":["7857:11:83","7869:24:83"],"nodeType":"IdentifierPath","referencedDeclaration":57272,"src":"7857:36:83"},"referencedDeclaration":57272,"src":"7857:36:83","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_storage_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"}},"visibility":"internal"}],"src":"7799:132:83"},"returnParameters":{"id":58843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":58918,"src":"7965:7:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58841,"name":"uint256","nodeType":"ElementaryTypeName","src":"7965:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7964:9:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":59040,"nodeType":"FunctionDefinition","src":"8969:1298:83","nodes":[],"body":{"id":59039,"nodeType":"Block","src":"9059:1208:83","nodes":[],"statements":[{"assignments":[58928],"declarations":[{"constant":false,"id":58928,"mutability":"mutable","name":"streamVaultKey","nameLocation":"9077:14:83","nodeType":"VariableDeclaration","scope":59039,"src":"9069:22:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58927,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9069:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58936,"initialValue":{"arguments":[{"id":58930,"name":"ADDRESS_NAME_STREAMVAULT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71288,"src":"9104:24:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":58933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9141:3:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":58931,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9130:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58932,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9134:6:83","memberName":"encode","nodeType":"MemberAccess","src":"9130:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9130:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58929,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"9094:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":58935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9094:52:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9069:77:83"},{"assignments":[58938],"declarations":[{"constant":false,"id":58938,"mutability":"mutable","name":"streamVaultAddress","nameLocation":"9164:18:83","nodeType":"VariableDeclaration","scope":59039,"src":"9156:26:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58937,"name":"address","nodeType":"ElementaryTypeName","src":"9156:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58943,"initialValue":{"arguments":[{"id":58941,"name":"streamVaultKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58928,"src":"9212:14:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58939,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"9185:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":58940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9201:10:83","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"9185:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":58942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9185:42:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9156:71:83"},{"expression":{"arguments":[{"id":58947,"name":"streamVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58938,"src":"9262:18:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58944,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"9237:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":58946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9246:15:83","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"9237:24:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":58948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9237:44:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58949,"nodeType":"ExpressionStatement","src":"9237:44:83"},{"assignments":[58954],"declarations":[{"constant":false,"id":58954,"mutability":"mutable","name":"borrowDetails","nameLocation":"9319:13:83","nodeType":"VariableDeclaration","scope":59039,"src":"9291:41:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData"},"typeName":{"id":58953,"nodeType":"UserDefinedTypeName","pathNode":{"id":58952,"name":"ILoan.LoanBorrowData","nameLocations":["9291:5:83","9297:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":56034,"src":"9291:20:83"},"referencedDeclaration":56034,"src":"9291:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_storage_ptr","typeString":"struct ILoan.LoanBorrowData"}},"visibility":"internal"}],"id":58959,"initialValue":{"arguments":[{"id":58956,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"9349:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58957,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58924,"src":"9360:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58955,"name":"getBorrowData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59259,"src":"9335:13:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanBorrowData_$56034_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanBorrowData memory)"}},"id":58958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9335:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"nodeType":"VariableDeclarationStatement","src":"9291:77:83"},{"assignments":[58964],"declarations":[{"constant":false,"id":58964,"mutability":"mutable","name":"supplyDetails","nameLocation":"9406:13:83","nodeType":"VariableDeclaration","scope":59039,"src":"9378:41:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":58963,"nodeType":"UserDefinedTypeName","pathNode":{"id":58962,"name":"ILoan.LoanSupplyData","nameLocations":["9378:5:83","9384:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"9378:20:83"},"referencedDeclaration":56003,"src":"9378:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"id":58969,"initialValue":{"arguments":[{"id":58966,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"9436:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":58967,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58924,"src":"9447:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":58965,"name":"getSupplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59296,"src":"9422:13:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanSupplyData_$56003_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanSupplyData memory)"}},"id":58968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9422:33:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"nodeType":"VariableDeclarationStatement","src":"9378:77:83"},{"assignments":[58971],"declarations":[{"constant":false,"id":58971,"mutability":"mutable","name":"key","nameLocation":"9473:3:83","nodeType":"VariableDeclaration","scope":59039,"src":"9465:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":58970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9465:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":58982,"initialValue":{"arguments":[{"hexValue":"416464726573732e4c656e6465724e616d652e436861696e49642e4d61726b657441646472657373","id":58973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9502:42:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_d4202b0f0d1952fc2ee60fa95221640ab0dc933f2aa711fa7df468e098534459","typeString":"literal_string \"Address.LenderName.ChainId.MarketAddress\""},"value":"Address.LenderName.ChainId.MarketAddress"},{"arguments":[{"expression":{"id":58976,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58964,"src":"9557:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9571:6:83","memberName":"lender","nodeType":"MemberAccess","referencedDeclaration":55994,"src":"9557:20:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":58978,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58964,"src":"9579:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":58979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9593:7:83","memberName":"chainId","nodeType":"MemberAccess","referencedDeclaration":56002,"src":"9579:21:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":58974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9546:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9550:6:83","memberName":"encode","nodeType":"MemberAccess","src":"9546:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":58980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9546:55:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d4202b0f0d1952fc2ee60fa95221640ab0dc933f2aa711fa7df468e098534459","typeString":"literal_string \"Address.LenderName.ChainId.MarketAddress\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":58972,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"9479:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":58981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9479:132:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9465:146:83"},{"assignments":[58984],"declarations":[{"constant":false,"id":58984,"mutability":"mutable","name":"marketAddress","nameLocation":"9629:13:83","nodeType":"VariableDeclaration","scope":59039,"src":"9621:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58983,"name":"address","nodeType":"ElementaryTypeName","src":"9621:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":58989,"initialValue":{"arguments":[{"id":58987,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58971,"src":"9672:3:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":58985,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"9645:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":58986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9661:10:83","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"9645:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":58988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9621:55:83"},{"expression":{"arguments":[{"id":58993,"name":"marketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58984,"src":"9711:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58990,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"9686:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":58992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9695:15:83","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"9686:24:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":58994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9686:39:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":58995,"nodeType":"ExpressionStatement","src":"9686:39:83"},{"assignments":[58997],"declarations":[{"constant":false,"id":58997,"mutability":"mutable","name":"borrowData","nameLocation":"9749:10:83","nodeType":"VariableDeclaration","scope":59039,"src":"9736:23:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":58996,"name":"bytes","nodeType":"ElementaryTypeName","src":"9736:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59022,"initialValue":{"arguments":[{"hexValue":"626f72726f772862797465732c75696e743235362c6164647265737329","id":59000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9799:31:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ab03673a100b939631c9111d8c254edf11a15776ba9c14db3a67e08d1e430b8","typeString":"literal_string \"borrow(bytes,uint256,address)\""},"value":"borrow(bytes,uint256,address)"},{"arguments":[{"id":59003,"name":"marketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58984,"src":"9872:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":59004,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58954,"src":"9887:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":59005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9901:16:83","memberName":"debtTokenAddress","nodeType":"MemberAccess","referencedDeclaration":56027,"src":"9887:30:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59006,"name":"trancheFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58920,"src":"9919:10:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":59007,"name":"borrowDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58954,"src":"9931:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"id":59008,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9945:8:83","memberName":"rateMode","nodeType":"MemberAccess","referencedDeclaration":56031,"src":"9931:22:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59009,"name":"streamVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58938,"src":"9955:18:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59001,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9844:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9848:6:83","memberName":"encode","nodeType":"MemberAccess","src":"9844:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9844:143:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":59011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10001:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"arguments":[{"id":59015,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58922,"src":"10043:9:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":59016,"name":"supplyDetails","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58964,"src":"10054:13:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":59017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10068:6:83","memberName":"lender","nodeType":"MemberAccess","referencedDeclaration":55994,"src":"10054:20:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59018,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58924,"src":"10076:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59014,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59360,"src":"10024:18:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":59019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10024:60:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10016:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59012,"name":"address","nodeType":"ElementaryTypeName","src":"10016:7:83","typeDescriptions":{}}},"id":59020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10016:69:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ab03673a100b939631c9111d8c254edf11a15776ba9c14db3a67e08d1e430b8","typeString":"literal_string \"borrow(bytes,uint256,address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":58998,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9762:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":58999,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9766:19:83","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9762:23:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":59021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9762:333:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9736:359:83"},{"assignments":[59024],"declarations":[{"constant":false,"id":59024,"mutability":"mutable","name":"success","nameLocation":"10110:7:83","nodeType":"VariableDeclaration","scope":59039,"src":"10105:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59023,"name":"bool","nodeType":"ElementaryTypeName","src":"10105:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":59033,"initialValue":{"arguments":[{"hexValue":"426f72726f77416374696f6e","id":59026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10145:14:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f76a4615eccda25e55f1b684c722c65745a1973a52a9535555929f6e6333f56","typeString":"literal_string \"BorrowAction\""},"value":"BorrowAction"},{"hexValue":"30","id":59027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10161:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":59028,"name":"borrowData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58997,"src":"10164:10:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":59029,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"10176:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":59030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10181:9:83","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"10176:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":59031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10191:4:83","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"10176:19:83","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f76a4615eccda25e55f1b684c722c65745a1973a52a9535555929f6e6333f56","typeString":"literal_string \"BorrowAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":59025,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"10120:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":59032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10120:76:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10105:91:83"},{"expression":{"arguments":[{"id":59035,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59024,"src":"10214:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20426f72726f77416374696f6e20657865637574696f6e206661696c6564","id":59036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10223:36:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c2063eecac9a1e271e785fca2a0db001481e3a19ab28af81adc00569fc314","typeString":"literal_string \"ERR: BorrowAction execution failed\""},"value":"ERR: BorrowAction execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f7c2063eecac9a1e271e785fca2a0db001481e3a19ab28af81adc00569fc314","typeString":"literal_string \"ERR: BorrowAction execution failed\""}],"id":59034,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10206:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10206:54:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59038,"nodeType":"ExpressionStatement","src":"10206:54:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"borrowFromLender","nameLocation":"8978:16:83","parameters":{"id":58925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":58920,"mutability":"mutable","name":"trancheFee","nameLocation":"9003:10:83","nodeType":"VariableDeclaration","scope":59040,"src":"8995:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58919,"name":"uint256","nodeType":"ElementaryTypeName","src":"8995:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":58922,"mutability":"mutable","name":"onBehalf_","nameLocation":"9023:9:83","nodeType":"VariableDeclaration","scope":59040,"src":"9015:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58921,"name":"address","nodeType":"ElementaryTypeName","src":"9015:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":58924,"mutability":"mutable","name":"loanId_","nameLocation":"9042:7:83","nodeType":"VariableDeclaration","scope":59040,"src":"9034:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":58923,"name":"uint256","nodeType":"ElementaryTypeName","src":"9034:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8994:56:83"},"returnParameters":{"id":58926,"nodeType":"ParameterList","parameters":[],"src":"9059:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":59111,"nodeType":"FunctionDefinition","src":"10383:716:83","nodes":[],"body":{"id":59110,"nodeType":"Block","src":"10492:607:83","nodes":[],"statements":[{"expression":{"arguments":[{"id":59054,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59046,"src":"10527:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59051,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"10502:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10511:15:83","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"10502:24:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":59055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10502:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59056,"nodeType":"ExpressionStatement","src":"10502:31:83"},{"expression":{"arguments":[{"id":59060,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59042,"src":"10565:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59057,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"10543:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10552:12:83","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"10543:21:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":59061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10543:30:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59062,"nodeType":"ExpressionStatement","src":"10543:30:83"},{"assignments":[59064],"declarations":[{"constant":false,"id":59064,"mutability":"mutable","name":"updateData","nameLocation":"10596:10:83","nodeType":"VariableDeclaration","scope":59110,"src":"10583:23:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59063,"name":"bytes","nodeType":"ElementaryTypeName","src":"10583:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59073,"initialValue":{"arguments":[{"hexValue":"30","id":59067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10620:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":59068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10623:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"expression":{"expression":{"id":59069,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"10626:5:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILoan_$56049_$","typeString":"type(contract ILoan)"}},"id":59070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10632:10:83","memberName":"LoanStatus","nodeType":"MemberAccess","referencedDeclaration":55979,"src":"10626:16:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_LoanStatus_$55979_$","typeString":"type(enum ILoan.LoanStatus)"}},"id":59071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10643:11:83","memberName":"FORECLOSURE","nodeType":"MemberAccess","referencedDeclaration":55978,"src":"10626:28:83","typeDescriptions":{"typeIdentifier":"t_enum$_LoanStatus_$55979","typeString":"enum ILoan.LoanStatus"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_enum$_LoanStatus_$55979","typeString":"enum ILoan.LoanStatus"}],"expression":{"id":59065,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10609:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10613:6:83","memberName":"encode","nodeType":"MemberAccess","src":"10609:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10609:46:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10583:72:83"},{"assignments":[59075],"declarations":[{"constant":false,"id":59075,"mutability":"mutable","name":"updateLoanData","nameLocation":"10678:14:83","nodeType":"VariableDeclaration","scope":59110,"src":"10665:27:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59074,"name":"bytes","nodeType":"ElementaryTypeName","src":"10665:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59086,"initialValue":{"arguments":[{"hexValue":"7570646174654c6f616e496e666f2862797465732c616464726573732c75696e743235362c75696e743829","id":59078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10732:45:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_7b6a4ce690a8d994c7dd962567833b846b9abb724bcb1a97ba5fae27687b3436","typeString":"literal_string \"updateLoanInfo(bytes,address,uint256,uint8)\""},"value":"updateLoanInfo(bytes,address,uint256,uint8)"},{"id":59079,"name":"updateData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59064,"src":"10779:10:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":59080,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59046,"src":"10791:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59081,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59042,"src":"10798:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":59082,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"10807:5:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILoan_$56049_$","typeString":"type(contract ILoan)"}},"id":59083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10813:11:83","memberName":"UpdateField","nodeType":"MemberAccess","referencedDeclaration":55984,"src":"10807:17:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateField_$55984_$","typeString":"type(enum ILoan.UpdateField)"}},"id":59084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10825:3:83","memberName":"ALL","nodeType":"MemberAccess","referencedDeclaration":55983,"src":"10807:21:83","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7b6a4ce690a8d994c7dd962567833b846b9abb724bcb1a97ba5fae27687b3436","typeString":"literal_string \"updateLoanInfo(bytes,address,uint256,uint8)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_enum$_UpdateField_$55984","typeString":"enum ILoan.UpdateField"}],"expression":{"id":59076,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10695:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10699:19:83","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10695:23:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":59085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10695:143:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10665:173:83"},{"assignments":[59088],"declarations":[{"constant":false,"id":59088,"mutability":"mutable","name":"success","nameLocation":"10853:7:83","nodeType":"VariableDeclaration","scope":59110,"src":"10848:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59087,"name":"bool","nodeType":"ElementaryTypeName","src":"10848:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":59097,"initialValue":{"arguments":[{"hexValue":"5570646174654c6f616e496e666f416374696f6e","id":59090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10888:22:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a88f3497097e119d8b5607f2093eb34e3771019a45bcb831c21bb984849dfda","typeString":"literal_string \"UpdateLoanInfoAction\""},"value":"UpdateLoanInfoAction"},{"hexValue":"30","id":59091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10912:7:83","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":59092,"name":"updateLoanData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59075,"src":"10921:14:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":59093,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"10937:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":59094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10942:9:83","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"10937:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":59095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10952:4:83","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"10937:19:83","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a88f3497097e119d8b5607f2093eb34e3771019a45bcb831c21bb984849dfda","typeString":"literal_string \"UpdateLoanInfoAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":59089,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"10863:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":59096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10863:94:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"10848:109:83"},{"expression":{"arguments":[{"id":59099,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59088,"src":"10975:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205570646174654c6f616e496e666f416374696f6e206661696c6564","id":59100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10984:34:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd5fd81816c2716ae640a3d23ebc9ffc8e042713ce1683918870bf11ab666a79","typeString":"literal_string \"ERR: UpdateLoanInfoAction failed\""},"value":"ERR: UpdateLoanInfoAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cd5fd81816c2716ae640a3d23ebc9ffc8e042713ce1683918870bf11ab666a79","typeString":"literal_string \"ERR: UpdateLoanInfoAction failed\""}],"id":59098,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10967:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10967:52:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59102,"nodeType":"ExpressionStatement","src":"10967:52:83"},{"expression":{"arguments":[{"id":59104,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59042,"src":"11052:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59105,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59044,"src":"11061:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59106,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59046,"src":"11072:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59107,"name":"portfolioId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59048,"src":"11079:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":59103,"name":"transferLoanToConcrete","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59222,"src":"11029:22:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,address,uint256)"}},"id":59108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11029:63:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59109,"nodeType":"ExpressionStatement","src":"11029:63:83"}]},"functionSelector":"a3043fb8","implemented":true,"kind":"function","modifiers":[],"name":"initiateForeclosure","nameLocation":"10392:19:83","parameters":{"id":59049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59042,"mutability":"mutable","name":"loanId_","nameLocation":"10420:7:83","nodeType":"VariableDeclaration","scope":59111,"src":"10412:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59041,"name":"uint256","nodeType":"ElementaryTypeName","src":"10412:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59044,"mutability":"mutable","name":"uniqueId_","nameLocation":"10437:9:83","nodeType":"VariableDeclaration","scope":59111,"src":"10429:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59043,"name":"uint256","nodeType":"ElementaryTypeName","src":"10429:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59046,"mutability":"mutable","name":"user_","nameLocation":"10456:5:83","nodeType":"VariableDeclaration","scope":59111,"src":"10448:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59045,"name":"address","nodeType":"ElementaryTypeName","src":"10448:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59048,"mutability":"mutable","name":"portfolioId_","nameLocation":"10471:12:83","nodeType":"VariableDeclaration","scope":59111,"src":"10463:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59047,"name":"uint256","nodeType":"ElementaryTypeName","src":"10463:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10411:73:83"},"returnParameters":{"id":59050,"nodeType":"ParameterList","parameters":[],"src":"10492:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59222,"nodeType":"FunctionDefinition","src":"11105:951:83","nodes":[],"body":{"id":59221,"nodeType":"Block","src":"11217:839:83","nodes":[],"statements":[{"expression":{"arguments":[{"id":59125,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59117,"src":"11252:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59122,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"11227:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11236:15:83","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"11227:24:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":59126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59127,"nodeType":"ExpressionStatement","src":"11227:31:83"},{"expression":{"arguments":[{"id":59131,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59115,"src":"11290:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59128,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"11268:8:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":59130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11277:12:83","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"11268:21:83","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":59132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11268:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59133,"nodeType":"ExpressionStatement","src":"11268:32:83"},{"assignments":[59135],"declarations":[{"constant":false,"id":59135,"mutability":"mutable","name":"warmVaultKey","nameLocation":"11318:12:83","nodeType":"VariableDeclaration","scope":59221,"src":"11310:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59134,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11310:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59143,"initialValue":{"arguments":[{"id":59137,"name":"ADDRESS_NAME_STREAMVAULT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71288,"src":"11343:24:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":59140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11380:3:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":59138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11369:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11373:6:83","memberName":"encode","nodeType":"MemberAccess","src":"11369:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11369:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59136,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"11333:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11333:52:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11310:75:83"},{"assignments":[59145],"declarations":[{"constant":false,"id":59145,"mutability":"mutable","name":"warmVaultAddress","nameLocation":"11403:16:83","nodeType":"VariableDeclaration","scope":59221,"src":"11395:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59144,"name":"address","nodeType":"ElementaryTypeName","src":"11395:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":59150,"initialValue":{"arguments":[{"id":59148,"name":"warmVaultKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59135,"src":"11449:12:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59146,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"11422:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11438:10:83","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"11422:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":59149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11422:40:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11395:67:83"},{"assignments":[59152],"declarations":[{"constant":false,"id":59152,"mutability":"mutable","name":"key","nameLocation":"11480:3:83","nodeType":"VariableDeclaration","scope":59221,"src":"11472:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11472:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59161,"initialValue":{"arguments":[{"id":59154,"name":"PORTFOLIOID_INDEX_TO_LOANID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71204,"src":"11496:27:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":59157,"name":"portfolioId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59119,"src":"11536:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59158,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59115,"src":"11550:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59155,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11525:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11529:6:83","memberName":"encode","nodeType":"MemberAccess","src":"11525:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11525:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59153,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"11486:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11486:75:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11472:89:83"},{"expression":{"arguments":[{"id":59165,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59152,"src":"11598:3:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59162,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"11571:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11587:10:83","memberName":"deleteUint","nodeType":"MemberAccess","referencedDeclaration":67346,"src":"11571:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":59166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11571:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59167,"nodeType":"ExpressionStatement","src":"11571:31:83"},{"assignments":[59169],"declarations":[{"constant":false,"id":59169,"mutability":"mutable","name":"key2","nameLocation":"11620:4:83","nodeType":"VariableDeclaration","scope":59221,"src":"11612:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11612:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59178,"initialValue":{"arguments":[{"id":59171,"name":"PORTFOLIOID_INDEX_TO_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71201,"src":"11637:25:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":59174,"name":"portfolioId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59119,"src":"11675:12:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":59175,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59115,"src":"11689:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59172,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11664:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59173,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11668:6:83","memberName":"encode","nodeType":"MemberAccess","src":"11664:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11664:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59170,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"11627:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11627:73:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11612:88:83"},{"expression":{"arguments":[{"id":59182,"name":"key2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"11740:4:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59179,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"11710:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11726:13:83","memberName":"deleteAddress","nodeType":"MemberAccess","referencedDeclaration":67340,"src":"11710:29:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":59183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11710:35:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59184,"nodeType":"ExpressionStatement","src":"11710:35:83"},{"assignments":[59186],"declarations":[{"constant":false,"id":59186,"mutability":"mutable","name":"loanKey","nameLocation":"11763:7:83","nodeType":"VariableDeclaration","scope":59221,"src":"11755:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59185,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11755:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59195,"initialValue":{"arguments":[{"id":59188,"name":"PORTFOLIOID_INDEX_TO_USER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71201,"src":"11783:25:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"31","id":59191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11821:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":59192,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59115,"src":"11824:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59189,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11810:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11814:6:83","memberName":"encode","nodeType":"MemberAccess","src":"11810:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11810:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59187,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"11773:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11773:62:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11755:80:83"},{"assignments":[59197],"declarations":[{"constant":false,"id":59197,"mutability":"mutable","name":"concreteKey","nameLocation":"11853:11:83","nodeType":"VariableDeclaration","scope":59221,"src":"11845:19:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11845:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59206,"initialValue":{"arguments":[{"id":59199,"name":"PORTFOLIOID_INDEX_TO_LOANID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71204,"src":"11877:27:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"31","id":59202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11917:1:83","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"id":59203,"name":"uniqueId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59115,"src":"11920:9:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11906:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11910:6:83","memberName":"encode","nodeType":"MemberAccess","src":"11906:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11906:24:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59198,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"11867:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11867:64:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11845:86:83"},{"expression":{"arguments":[{"id":59210,"name":"concreteKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59197,"src":"11965:11:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":59211,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59113,"src":"11978:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59207,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"11941:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11957:7:83","memberName":"setUint","nodeType":"MemberAccess","referencedDeclaration":67222,"src":"11941:23:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256) external"}},"id":59212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11941:45:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59213,"nodeType":"ExpressionStatement","src":"11941:45:83"},{"expression":{"arguments":[{"id":59217,"name":"loanKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59186,"src":"12023:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":59218,"name":"warmVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59145,"src":"12032:16:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":59214,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"11996:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12012:10:83","memberName":"setAddress","nodeType":"MemberAccess","referencedDeclaration":67214,"src":"11996:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) external"}},"id":59219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11996:53:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59220,"nodeType":"ExpressionStatement","src":"11996:53:83"}]},"functionSelector":"e01a56ba","implemented":true,"kind":"function","modifiers":[],"name":"transferLoanToConcrete","nameLocation":"11114:22:83","parameters":{"id":59120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59113,"mutability":"mutable","name":"loanId_","nameLocation":"11145:7:83","nodeType":"VariableDeclaration","scope":59222,"src":"11137:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59112,"name":"uint256","nodeType":"ElementaryTypeName","src":"11137:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59115,"mutability":"mutable","name":"uniqueId_","nameLocation":"11162:9:83","nodeType":"VariableDeclaration","scope":59222,"src":"11154:17:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59114,"name":"uint256","nodeType":"ElementaryTypeName","src":"11154:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59117,"mutability":"mutable","name":"user_","nameLocation":"11181:5:83","nodeType":"VariableDeclaration","scope":59222,"src":"11173:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59116,"name":"address","nodeType":"ElementaryTypeName","src":"11173:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59119,"mutability":"mutable","name":"portfolioId_","nameLocation":"11196:12:83","nodeType":"VariableDeclaration","scope":59222,"src":"11188:20:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59118,"name":"uint256","nodeType":"ElementaryTypeName","src":"11188:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11136:73:83"},"returnParameters":{"id":59121,"nodeType":"ParameterList","parameters":[],"src":"11217:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":59259,"nodeType":"FunctionDefinition","src":"12062:340:83","nodes":[],"body":{"id":59258,"nodeType":"Block","src":"12168:234:83","nodes":[],"statements":[{"assignments":[59233],"declarations":[{"constant":false,"id":59233,"mutability":"mutable","name":"key","nameLocation":"12186:3:83","nodeType":"VariableDeclaration","scope":59258,"src":"12178:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59232,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12178:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59242,"initialValue":{"arguments":[{"id":59235,"name":"USER_INDEX_TO_BORROWDATA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71225,"src":"12202:24:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":59238,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59224,"src":"12239:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59239,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59226,"src":"12246:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59236,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12228:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12232:6:83","memberName":"encode","nodeType":"MemberAccess","src":"12228:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12228:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59234,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"12192:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12192:63:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12178:77:83"},{"assignments":[59244],"declarations":[{"constant":false,"id":59244,"mutability":"mutable","name":"loanDetailsBytes","nameLocation":"12278:16:83","nodeType":"VariableDeclaration","scope":59258,"src":"12265:29:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59243,"name":"bytes","nodeType":"ElementaryTypeName","src":"12265:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59249,"initialValue":{"arguments":[{"id":59247,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59233,"src":"12322:3:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59245,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"12297:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12313:8:83","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"12297:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":59248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12297:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12265:61:83"},{"expression":{"arguments":[{"id":59252,"name":"loanDetailsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59244,"src":"12354:16:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":59253,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"12373:5:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILoan_$56049_$","typeString":"type(contract ILoan)"}},"id":59254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12379:14:83","memberName":"LoanBorrowData","nodeType":"MemberAccess","referencedDeclaration":56034,"src":"12373:20:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanBorrowData_$56034_storage_ptr_$","typeString":"type(struct ILoan.LoanBorrowData storage pointer)"}}],"id":59255,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12372:22:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanBorrowData_$56034_storage_ptr_$","typeString":"type(struct ILoan.LoanBorrowData storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LoanBorrowData_$56034_storage_ptr_$","typeString":"type(struct ILoan.LoanBorrowData storage pointer)"}],"expression":{"id":59250,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12343:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12347:6:83","memberName":"decode","nodeType":"MemberAccess","src":"12343:10:83","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":59256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12343:52:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData memory"}},"functionReturnParameters":59231,"id":59257,"nodeType":"Return","src":"12336:59:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBorrowData","nameLocation":"12071:13:83","parameters":{"id":59227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59224,"mutability":"mutable","name":"user_","nameLocation":"12093:5:83","nodeType":"VariableDeclaration","scope":59259,"src":"12085:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59223,"name":"address","nodeType":"ElementaryTypeName","src":"12085:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59226,"mutability":"mutable","name":"loanId_","nameLocation":"12108:7:83","nodeType":"VariableDeclaration","scope":59259,"src":"12100:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59225,"name":"uint256","nodeType":"ElementaryTypeName","src":"12100:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12084:32:83"},"returnParameters":{"id":59231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59259,"src":"12139:27:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_memory_ptr","typeString":"struct ILoan.LoanBorrowData"},"typeName":{"id":59229,"nodeType":"UserDefinedTypeName","pathNode":{"id":59228,"name":"ILoan.LoanBorrowData","nameLocations":["12139:5:83","12145:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":56034,"src":"12139:20:83"},"referencedDeclaration":56034,"src":"12139:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanBorrowData_$56034_storage_ptr","typeString":"struct ILoan.LoanBorrowData"}},"visibility":"internal"}],"src":"12138:29:83"},"scope":59452,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":59296,"nodeType":"FunctionDefinition","src":"12408:344:83","nodes":[],"body":{"id":59295,"nodeType":"Block","src":"12514:238:83","nodes":[],"statements":[{"assignments":[59270],"declarations":[{"constant":false,"id":59270,"mutability":"mutable","name":"key","nameLocation":"12532:3:83","nodeType":"VariableDeclaration","scope":59295,"src":"12524:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12524:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59279,"initialValue":{"arguments":[{"id":59272,"name":"USER_INDEX_TO_LOANSUPPLYDATA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71222,"src":"12548:28:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":59275,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59261,"src":"12589:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59276,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59263,"src":"12596:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12578:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12582:6:83","memberName":"encode","nodeType":"MemberAccess","src":"12578:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12578:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59271,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"12538:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12538:67:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12524:81:83"},{"assignments":[59281],"declarations":[{"constant":false,"id":59281,"mutability":"mutable","name":"loanDetailsBytes","nameLocation":"12628:16:83","nodeType":"VariableDeclaration","scope":59295,"src":"12615:29:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59280,"name":"bytes","nodeType":"ElementaryTypeName","src":"12615:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59286,"initialValue":{"arguments":[{"id":59284,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59270,"src":"12672:3:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59282,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"12647:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12663:8:83","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"12647:24:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":59285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12647:29:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12615:61:83"},{"expression":{"arguments":[{"id":59289,"name":"loanDetailsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59281,"src":"12704:16:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":59290,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"12723:5:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILoan_$56049_$","typeString":"type(contract ILoan)"}},"id":59291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12729:14:83","memberName":"LoanSupplyData","nodeType":"MemberAccess","referencedDeclaration":56003,"src":"12723:20:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanSupplyData_$56003_storage_ptr_$","typeString":"type(struct ILoan.LoanSupplyData storage pointer)"}}],"id":59292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12722:22:83","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanSupplyData_$56003_storage_ptr_$","typeString":"type(struct ILoan.LoanSupplyData storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LoanSupplyData_$56003_storage_ptr_$","typeString":"type(struct ILoan.LoanSupplyData storage pointer)"}],"expression":{"id":59287,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12693:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12697:6:83","memberName":"decode","nodeType":"MemberAccess","src":"12693:10:83","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":59293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12693:52:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"functionReturnParameters":59268,"id":59294,"nodeType":"Return","src":"12686:59:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getSupplyData","nameLocation":"12417:13:83","parameters":{"id":59264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59261,"mutability":"mutable","name":"user_","nameLocation":"12439:5:83","nodeType":"VariableDeclaration","scope":59296,"src":"12431:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59260,"name":"address","nodeType":"ElementaryTypeName","src":"12431:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59263,"mutability":"mutable","name":"loanId_","nameLocation":"12454:7:83","nodeType":"VariableDeclaration","scope":59296,"src":"12446:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59262,"name":"uint256","nodeType":"ElementaryTypeName","src":"12446:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12430:32:83"},"returnParameters":{"id":59268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":59296,"src":"12485:27:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":59266,"nodeType":"UserDefinedTypeName","pathNode":{"id":59265,"name":"ILoan.LoanSupplyData","nameLocations":["12485:5:83","12491:14:83"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"12485:20:83"},"referencedDeclaration":56003,"src":"12485:20:83","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"src":"12484:29:83"},"scope":59452,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":59317,"nodeType":"FunctionDefinition","src":"12758:201:83","nodes":[],"body":{"id":59316,"nodeType":"Block","src":"12855:104:83","nodes":[],"statements":[{"expression":{"id":59314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59303,"name":"marketAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59301,"src":"12872:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":59307,"name":"pointer_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59298,"src":"12925:8:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":59310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12946:3:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":59308,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12935:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12939:6:83","memberName":"encode","nodeType":"MemberAccess","src":"12935:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12935:15:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59306,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"12915:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12915:36:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59304,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"12888:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12904:10:83","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"12888:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":59313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12888:64:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12872:80:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59302,"id":59315,"nodeType":"Return","src":"12865:87:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fetchMarketAddress","nameLocation":"12767:18:83","parameters":{"id":59299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59298,"mutability":"mutable","name":"pointer_","nameLocation":"12800:8:83","nodeType":"VariableDeclaration","scope":59317,"src":"12786:22:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59297,"name":"string","nodeType":"ElementaryTypeName","src":"12786:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12785:24:83"},"returnParameters":{"id":59302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59301,"mutability":"mutable","name":"marketAddress","nameLocation":"12840:13:83","nodeType":"VariableDeclaration","scope":59317,"src":"12832:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59300,"name":"address","nodeType":"ElementaryTypeName","src":"12832:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12831:23:83"},"scope":59452,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":59360,"nodeType":"FunctionDefinition","src":"12965:486:83","nodes":[],"body":{"id":59359,"nodeType":"Block","src":"13155:296:83","nodes":[],"statements":[{"assignments":[59329],"declarations":[{"constant":false,"id":59329,"mutability":"mutable","name":"key","nameLocation":"13173:3:83","nodeType":"VariableDeclaration","scope":59359,"src":"13165:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59328,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13165:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59339,"initialValue":{"arguments":[{"id":59331,"name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71276,"src":"13189:41:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":59334,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59319,"src":"13243:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59335,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59321,"src":"13250:11:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":59336,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59323,"src":"13263:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59332,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13232:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13236:6:83","memberName":"encode","nodeType":"MemberAccess","src":"13232:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13232:39:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59330,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"13179:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13179:93:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13165:107:83"},{"expression":{"id":59345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59340,"name":"userBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59326,"src":"13283:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59343,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59329,"src":"13326:3:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59341,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"13299:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13315:10:83","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"13299:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":59344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13299:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13283:47:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":59346,"nodeType":"ExpressionStatement","src":"13283:47:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59348,"name":"userBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59326,"src":"13348:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":59351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13373:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13365:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59349,"name":"address","nodeType":"ElementaryTypeName","src":"13365:7:83","typeDescriptions":{}}},"id":59352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13365:10:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13348:27:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205573657220446f6573204e6f74204861766520426c75657072696e74","id":59354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13377:35:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_f37177c73d6fea2776ecbe25c7d94a6ccc9bb37b622869ee607318e2887e3cc5","typeString":"literal_string \"ERR: User Does Not Have Blueprint\""},"value":"ERR: User Does Not Have Blueprint"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f37177c73d6fea2776ecbe25c7d94a6ccc9bb37b622869ee607318e2887e3cc5","typeString":"literal_string \"ERR: User Does Not Have Blueprint\""}],"id":59347,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13340:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13340:73:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59356,"nodeType":"ExpressionStatement","src":"13340:73:83"},{"expression":{"id":59357,"name":"userBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59326,"src":"13431:13:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":59327,"id":59358,"nodeType":"Return","src":"13424:20:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fetchUserBlueprint","nameLocation":"12974:18:83","parameters":{"id":59324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59319,"mutability":"mutable","name":"user_","nameLocation":"13010:5:83","nodeType":"VariableDeclaration","scope":59360,"src":"13002:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59318,"name":"address","nodeType":"ElementaryTypeName","src":"13002:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59321,"mutability":"mutable","name":"lenderName_","nameLocation":"13039:11:83","nodeType":"VariableDeclaration","scope":59360,"src":"13025:25:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":59320,"name":"string","nodeType":"ElementaryTypeName","src":"13025:6:83","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":59323,"mutability":"mutable","name":"loanId_","nameLocation":"13068:7:83","nodeType":"VariableDeclaration","scope":59360,"src":"13060:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59322,"name":"uint256","nodeType":"ElementaryTypeName","src":"13060:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12992:89:83"},"returnParameters":{"id":59327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59326,"mutability":"mutable","name":"userBlueprint","nameLocation":"13136:13:83","nodeType":"VariableDeclaration","scope":59360,"src":"13128:21:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59325,"name":"address","nodeType":"ElementaryTypeName","src":"13128:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13127:23:83"},"scope":59452,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":59408,"nodeType":"FunctionDefinition","src":"13457:500:83","nodes":[],"body":{"id":59407,"nodeType":"Block","src":"13630:327:83","nodes":[],"statements":[{"assignments":[59372],"declarations":[{"constant":false,"id":59372,"mutability":"mutable","name":"key","nameLocation":"13648:3:83","nodeType":"VariableDeclaration","scope":59407,"src":"13640:11:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":59371,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13640:7:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":59381,"initialValue":{"arguments":[{"id":59374,"name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71300,"src":"13664:29:83","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":59377,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59362,"src":"13706:6:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59378,"name":"chain_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59364,"src":"13714:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":59375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13695:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13699:6:83","memberName":"encode","nodeType":"MemberAccess","src":"13695:10:83","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":59379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13695:26:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":59373,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"13654:9:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":59380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13654:68:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13640:82:83"},{"assignments":[59383],"declarations":[{"constant":false,"id":59383,"mutability":"mutable","name":"priceFeedAddress","nameLocation":"13740:16:83","nodeType":"VariableDeclaration","scope":59407,"src":"13732:24:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59382,"name":"address","nodeType":"ElementaryTypeName","src":"13732:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":59388,"initialValue":{"arguments":[{"id":59386,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59372,"src":"13786:3:83","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":59384,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"13759:15:83","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":59385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13775:10:83","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"13759:26:83","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":59387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13759:31:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13732:58:83"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":59395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":59390,"name":"priceFeedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59383,"src":"13808:16:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":59393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13836:1:83","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":59392,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13828:7:83","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":59391,"name":"address","nodeType":"ElementaryTypeName","src":"13828:7:83","typeDescriptions":{}}},"id":59394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13828:10:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13808:30:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20507269636520466565642041646472657373204e6f7420466f756e64","id":59396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13840:35:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_3ce79ac3cd1d8e8348c535233238cfb4bcd073a5b25d2e1e93e81da65588431b","typeString":"literal_string \"ERR: Price Feed Address Not Found\""},"value":"ERR: Price Feed Address Not Found"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3ce79ac3cd1d8e8348c535233238cfb4bcd073a5b25d2e1e93e81da65588431b","typeString":"literal_string \"ERR: Price Feed Address Not Found\""}],"id":59389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13800:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13800:76:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59398,"nodeType":"ExpressionStatement","src":"13800:76:83"},{"expression":{"id":59403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":59399,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59369,"src":"13886:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":59401,"name":"priceFeedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59383,"src":"13910:16:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":59400,"name":"getLatestPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71768,"src":"13895:14:83","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":59402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13895:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13886:41:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":59404,"nodeType":"ExpressionStatement","src":"13886:41:83"},{"expression":{"id":59405,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59369,"src":"13944:6:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":59370,"id":59406,"nodeType":"Return","src":"13937:13:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"fetchTokenPrice","nameLocation":"13466:15:83","parameters":{"id":59367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59362,"mutability":"mutable","name":"token_","nameLocation":"13499:6:83","nodeType":"VariableDeclaration","scope":59408,"src":"13491:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59361,"name":"address","nodeType":"ElementaryTypeName","src":"13491:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59364,"mutability":"mutable","name":"chain_","nameLocation":"13523:6:83","nodeType":"VariableDeclaration","scope":59408,"src":"13515:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59363,"name":"uint256","nodeType":"ElementaryTypeName","src":"13515:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59366,"mutability":"mutable","name":"decimcals_","nameLocation":"13547:10:83","nodeType":"VariableDeclaration","scope":59408,"src":"13539:18:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59365,"name":"uint256","nodeType":"ElementaryTypeName","src":"13539:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13481:82:83"},"returnParameters":{"id":59370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59369,"mutability":"mutable","name":"result","nameLocation":"13618:6:83","nodeType":"VariableDeclaration","scope":59408,"src":"13610:14:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59368,"name":"uint256","nodeType":"ElementaryTypeName","src":"13610:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13609:16:83"},"scope":59452,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":59451,"nodeType":"FunctionDefinition","src":"13963:708:83","nodes":[],"body":{"id":59450,"nodeType":"Block","src":"14189:482:83","nodes":[],"statements":[{"assignments":[59421],"declarations":[{"constant":false,"id":59421,"mutability":"mutable","name":"updateLoanData","nameLocation":"14212:14:83","nodeType":"VariableDeclaration","scope":59450,"src":"14199:27:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59420,"name":"bytes","nodeType":"ElementaryTypeName","src":"14199:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":59433,"initialValue":{"arguments":[{"hexValue":"75706461746550726f74656374696f6e46696e616e6369616c5465726d732862797465732c616464726573732c75696e743235362c75696e743829","id":59424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14266:61:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb32ff001a4eb68cd7616d1254159c01d14b615b9a999c5986c79eeaecaf013","typeString":"literal_string \"updateProtectionFinancialTerms(bytes,address,uint256,uint8)\""},"value":"updateProtectionFinancialTerms(bytes,address,uint256,uint8)"},{"id":59425,"name":"protectionData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59410,"src":"14341:15:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":59426,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59412,"src":"14370:5:83","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":59427,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59414,"src":"14389:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":59430,"name":"updateFinancialTermsField","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59417,"src":"14416:25:83","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}],"id":59429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14410:5:83","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":59428,"name":"uint8","nodeType":"ElementaryTypeName","src":"14410:5:83","typeDescriptions":{}}},"id":59431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14410:32:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8cb32ff001a4eb68cd7616d1254159c01d14b615b9a999c5986c79eeaecaf013","typeString":"literal_string \"updateProtectionFinancialTerms(bytes,address,uint256,uint8)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":59422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14229:3:83","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":59423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14233:19:83","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14229:23:83","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":59432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14229:223:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14199:253:83"},{"assignments":[59435],"declarations":[{"constant":false,"id":59435,"mutability":"mutable","name":"success","nameLocation":"14467:7:83","nodeType":"VariableDeclaration","scope":59450,"src":"14462:12:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":59434,"name":"bool","nodeType":"ElementaryTypeName","src":"14462:4:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":59444,"initialValue":{"arguments":[{"hexValue":"55706461746550726f74656374696f6e46544d496e666f416374696f6e","id":59437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14514:31:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_42e9919af58b7d9662bbcbc17a207239595334cd344affa146b7f19ace02e6b6","typeString":"literal_string \"UpdateProtectionFTMInfoAction\""},"value":"UpdateProtectionFTMInfoAction"},{"hexValue":"30","id":59438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14547:7:83","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":59439,"name":"updateLoanData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59421,"src":"14556:14:83","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":59440,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"14572:4:83","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":59441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14577:9:83","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"14572:14:83","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":59442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14587:4:83","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"14572:19:83","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42e9919af58b7d9662bbcbc17a207239595334cd344affa146b7f19ace02e6b6","typeString":"literal_string \"UpdateProtectionFTMInfoAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":59436,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"14489:24:83","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":59443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14489:103:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"14462:130:83"},{"expression":{"arguments":[{"id":59446,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59435,"src":"14610:7:83","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a2075706461746550726f74656374696f6e46696e616e6369616c5465726d73206661696c6564","id":59447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14619:44:83","typeDescriptions":{"typeIdentifier":"t_stringliteral_19b452ab8ad2bfaad4bd3204beb6d0f2fb9e90513d1f29d88efe5cc4753bd5f4","typeString":"literal_string \"ERR: updateProtectionFinancialTerms failed\""},"value":"ERR: updateProtectionFinancialTerms failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_19b452ab8ad2bfaad4bd3204beb6d0f2fb9e90513d1f29d88efe5cc4753bd5f4","typeString":"literal_string \"ERR: updateProtectionFinancialTerms failed\""}],"id":59445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"14602:7:83","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":59448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14602:62:83","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":59449,"nodeType":"ExpressionStatement","src":"14602:62:83"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_updateProtectionFinancialTerms","nameLocation":"13972:31:83","parameters":{"id":59418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":59410,"mutability":"mutable","name":"protectionData_","nameLocation":"14026:15:83","nodeType":"VariableDeclaration","scope":59451,"src":"14013:28:83","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":59409,"name":"bytes","nodeType":"ElementaryTypeName","src":"14013:5:83","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":59412,"mutability":"mutable","name":"user_","nameLocation":"14059:5:83","nodeType":"VariableDeclaration","scope":59451,"src":"14051:13:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":59411,"name":"address","nodeType":"ElementaryTypeName","src":"14051:7:83","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59414,"mutability":"mutable","name":"loanId_","nameLocation":"14082:7:83","nodeType":"VariableDeclaration","scope":59451,"src":"14074:15:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":59413,"name":"uint256","nodeType":"ElementaryTypeName","src":"14074:7:83","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59417,"mutability":"mutable","name":"updateFinancialTermsField","nameLocation":"14137:25:83","nodeType":"VariableDeclaration","scope":59451,"src":"14099:63:83","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"},"typeName":{"id":59416,"nodeType":"UserDefinedTypeName","pathNode":{"id":59415,"name":"IProtection.UpdateFinancialTermsField","nameLocations":["14099:11:83","14111:25:83"],"nodeType":"IdentifierPath","referencedDeclaration":57234,"src":"14099:37:83"},"referencedDeclaration":57234,"src":"14099:37:83","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateFinancialTermsField_$57234","typeString":"enum IProtection.UpdateFinancialTermsField"}},"visibility":"internal"}],"src":"14003:165:83"},"returnParameters":{"id":59419,"nodeType":"ParameterList","parameters":[],"src":"14189:0:83"},"scope":59452,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":58212,"name":"BlueprintBase","nameLocations":["980:13:83"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"980:13:83"},"id":58213,"nodeType":"InheritanceSpecifier","src":"980:13:83"},{"baseName":{"id":58214,"name":"ChainlinkOraclePrice","nameLocations":["995:20:83"],"nodeType":"IdentifierPath","referencedDeclaration":71810,"src":"995:20:83"},"id":58215,"nodeType":"InheritanceSpecifier","src":"995:20:83"}],"canonicalName":"ClaimBlueprint","contractDependencies":[],"contractKind":"contract","documentation":{"id":58211,"nodeType":"StructuredDocumentation","src":"820:132:83","text":" @title ClaimBlueprint\n @dev This contract is used to manage loans and protections to ensure a user never gets liqudated"},"fullyImplemented":true,"linearizedBaseContracts":[59452,71810,71548,67625,67552,71343,71416,66682],"name":"ClaimBlueprint","nameLocation":"962:14:83","scope":59453,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":83}
Lender Blueprint
0x882Ff988E170c83557DBFc3EAb324aF0C075F21E
{"abi":[{"type":"constructor","inputs":[{"name":"concreteStorage_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ACL_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_ACTION_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_LENDER_MARKET","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_CONCRETE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_MASTERVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_PORTFOLIO","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_STREAMVAULT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_ETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_USDC","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_NAME_TOKEN_WETH","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_TOKEN_PRICEFEED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CONCRETE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_CLAIM_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_LOAN_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PORTFOLIO_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_PROTECTION_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"COUNTER_RECEIPT_ID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_REWARDS_TREASURY","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_STAKING_CONTRACT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"CT_TOKEN_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"MODULE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MODULE_MANAGER_NAME_MODULES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_INDEX_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PORTFOLIOID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"PROTOCOL_MANAGER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_POSITION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"RECEIPTID_TO_USER","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ROLE_NAME_USER_TO_EXIST","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_DURATION_AND_REWARDS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"STAKING_RECEIPT_ADDRESS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"SUDO_ADMIN","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_CLAIM","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTIONID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_ID_PROTECTION_UPDATES","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_BORROWDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_INDEX_TO_LOANUPDATE","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_PORTFOLIOID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"borrow","inputs":[{"name":"borrowData_","type":"bytes","internalType":"bytes"},{"name":"value_","type":"uint256","internalType":"uint256"},{"name":"onBehalf_","type":"address","internalType":"address"},{"name":"lenderName_","type":"string","internalType":"string"},{"name":"loanId_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeActionTransaction","inputs":[{"name":"actionName_","type":"string","internalType":"string"},{"name":"value_","type":"uint256","internalType":"uint256"},{"name":"data_","type":"bytes","internalType":"bytes"},{"name":"operation_","type":"uint8","internalType":"enum Enum.Operation"}],"outputs":[{"name":"success","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"getActionAddress","inputs":[{"name":"actionName_","type":"string","internalType":"string"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initiateSupply","inputs":[{"name":"value_","type":"uint256","internalType":"uint256"},{"name":"lenderName_","type":"string","internalType":"string"},{"name":"onBehalf_","type":"address","internalType":"address"},{"name":"supplyData","type":"bytes","internalType":"bytes"},{"name":"loandId_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"repay","inputs":[{"name":"repayData_","type":"bytes","internalType":"bytes"},{"name":"value_","type":"uint256","internalType":"uint256"},{"name":"onBehalf_","type":"address","internalType":"address"},{"name":"lenderName_","type":"string","internalType":"string"},{"name":"loanId_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovedCollateralToLender","inputs":[{"name":"lender_","type":"string","internalType":"string"},{"name":"collateral_","type":"address","internalType":"address"},{"name":"value_","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdraw","inputs":[{"name":"withdrawData_","type":"bytes","internalType":"bytes"},{"name":"onBehalf_","type":"address","internalType":"address"},{"name":"lenderName_","type":"string","internalType":"string"},{"name":"loanId_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Borrow","inputs":[{"name":"lender","type":"string","indexed":false,"internalType":"string"},{"name":"blueprintAddress","type":"address","indexed":true,"internalType":"address"},{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"borrowData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Repay","inputs":[{"name":"lender","type":"string","indexed":false,"internalType":"string"},{"name":"blueprint","type":"address","indexed":true,"internalType":"address"},{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"repayData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Supply","inputs":[{"name":"lender","type":"string","indexed":true,"internalType":"string"},{"name":"blueprintAddress","type":"address","indexed":true,"internalType":"address"},{"name":"supplyData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"TransferCancelFee","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"vault","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"UpdateProtectionLB","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"loanId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"updateData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Withdraw","inputs":[{"name":"lender","type":"string","indexed":false,"internalType":"string"},{"name":"blueprint","type":"address","indexed":true,"internalType":"address"},{"name":"borrower","type":"address","indexed":true,"internalType":"address"},{"name":"withdrawData","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b5060405162005e5f38038062005e5f83398101604081905262000034916200034f565b808080604051602001620000569067141493d513d0d3d360c21b815260080190565b60408051601f1981840301815291905280516020909101206001600160a01b038216620000d65760405162461bcd60e51b815260206004820152602360248201527f4552523a2053746f7261676520616464726573732063616e6e6f74206265207a60448201526265726f60e81b60648201526084015b60405180910390fd5b6001600160e01b031981166200012f5760405162461bcd60e51b815260206004820152601d60248201527f4552523a204e616d6573706163652063616e6e6f74206265207a65726f0000006044820152606401620000cd565b6001600160a01b039091166080526001600160e01b03191660a05250604080518082018252601681527f416464726573732e4d616e616765722e416374696f6e000000000000000000006020808301919091529151600092620001c49291620001ae91016020808252600190820152601f60fa1b604082015260600190565b60408051601f19818403018152919052620002c3565b905060006080516001600160a01b03166321f8a721836040518263ffffffff1660e01b8152600401620001f991815260200190565b602060405180830381865afa15801562000217573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200023d91906200034f565b604051632f47185360e11b81526001600160a01b038216600482015290915073__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156200029457600080fd5b505af4158015620002a9573d6000803e3d6000fd5b505050506001600160a01b031660c052506200041e915050565b60a051604051631ed43b8b60e21b815260009173__$cb588f1a84862ec6179da8c4e68bd890a8$__91637b50ee2c91620003049187908790600401620003c2565b602060405180830381865af415801562000322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000348919062000404565b9392505050565b6000602082840312156200036257600080fd5b81516001600160a01b03811681146200034857600080fd5b6000815180845260005b81811015620003a25760208185018101518683018201520162000384565b506000602082860101526020601f19601f83011685010191505092915050565b63ffffffff60e01b84168152606060208201526000620003e660608301856200037a565b8281036040840152620003fa81856200037a565b9695505050505050565b6000602082840312156200041757600080fd5b5051919050565b60805160a05160c05161598c620004d36000396000818161308f015261326001526000613329015260008181611123015281816112ed015281816117400152818161192201528181611fc901528181612152015281816121de015281816122db0152818161269601528181612a5a01528181612eda015281816134030152818161366c015281816138300152818161401b015281816141e4015281816145c3015281816146ff0152614880015261598c6000f3fe608060405234801561001057600080fd5b506004361061043a5760003560e01c80637feee92e11610235578063ba9a08d711610135578063d83205c0116100c8578063e642ad3411610097578063ec11384a1161007c578063ec11384a14610e63578063f61e60f214610e9f578063ffbf516314610edb57600080fd5b8063e642ad3414610e1f578063eaca386414610e5b57600080fd5b8063d83205c014610d63578063d88597de14610d9f578063dbd55fb314610ddb578063e51a3bab14610de357600080fd5b8063ca6d5e3311610104578063ca6d5e3314610ca7578063ccca891114610ce3578063d017d35714610ceb578063d15263d314610d2757600080fd5b8063ba9a08d714610c1f578063be22fa1e14610c5b578063c414d4f914610c63578063c5ad787914610c6b57600080fd5b806395789e1c116101c8578063a5be606311610197578063aacb7f341161017c578063aacb7f3414610b9f578063af895a3b14610ba7578063b70855fb14610be357600080fd5b8063a5be606314610b63578063a652cb801461046f57600080fd5b806395789e1c146105175780639d18526414610b175780639e5f854214610b53578063a2fd43c514610b5b57600080fd5b80638c3e62b6116102045780638c3e62b614610aa85780638d7e9e9414610ab057806391aab3e414610ad357806391b9b82714610b0f57600080fd5b80637feee92e14610a3e578063856203f514610a515780638b3e047114610a645780638b40da7d14610aa057600080fd5b806359dcf3f611610340578063678df18f116102d3578063739baf49116102a25780637a25c9d3116102875780637a25c9d31461098a5780637d49df3b146109c65780637d95de8e14610a0257600080fd5b8063739baf491461091257806379c52aca1461094e57600080fd5b8063678df18f14610856578063697e744c146108925780636a0b3f641461089a578063724348ab146108d657600080fd5b8063608dade91161030f578063608dade91461076657806361945bfc146107a257806362a4c3df146107de578063638bf74f1461081a57600080fd5b806359dcf3f6146106de5780635e2092491461071a5780635e61dc38146107225780635f39ca221461072a57600080fd5b806326026d18116103d3578063420ea360116103a257806342ff308b1161038757806342ff308b14610653578063430c6fe61461068f57806351de0372146106cb57600080fd5b8063420ea360146105db578063423ac8d91461061757600080fd5b806326026d181461051f578063264c13561461055b5780632a0f4d6b146105975780632d1da17e1461059f57600080fd5b80630d6c8e771161040f5780630d6c8e77146104b35780630e494332146104c8578063216684b31461050457806325889b221461051757600080fd5b806272e1401461043f578062a9d96e1461045a578063057afbfe1461046f578063094d3a34146104ab575b600080fd5b610447610f13565b6040519081526020015b60405180910390f35b610462610f78565b6040516104519190614cd8565b6104626040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b610447610f94565b6104c66104c1366004614e77565b610fc5565b005b6104626040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b6104c6610512366004614e77565b6115f2565b610447611e19565b6104626040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6104626040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b610447611e4a565b6104626040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6104626040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6104626040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6104626040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6104626040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6104c66106d9366004614f01565b611e7b565b6104626040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b6104476124df565b610462612510565b6104626040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6104626040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6104626040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6104626040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6104626040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6104626040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b61046261252c565b6104626040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b6104626040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6104626040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6104626040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6104626040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b6104626040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6104626040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6104c6610a4c366004614f64565b612548565b6104c6610a5f366004614fc8565b61290c565b6104626040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b610447612d27565b610447612d58565b610ac3610abe366004615048565b612d89565b6040519015158152602001610451565b6104626040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b6104476130e5565b6104626040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b610462613116565b610462613132565b6104626040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b61046261314e565b6104626040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6104626040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6104626040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b61046261316a565b610462613186565b6104626040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6104626040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b6104476131a2565b6104626040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6104626040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6104626040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6104626040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b6104476131d3565b6104626040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6104626040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b610462613204565b6104626040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6104626040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610eee610ee93660046150cc565b613220565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610451565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b6040518060600160405280602481526020016159686024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610f40565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600060405160200161105b907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e457869737400000000000000000000000084830152825191820186905233928201929092529092506000916110f1916060015b6040516020818303038152906040526132de565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa15801561117f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a39190615109565b611234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60006112a36040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525088876040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015611334573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261137a9190810190615156565b90508773ffffffffffffffffffffffffffffffffffffffff1661139e89898961339d565b73ffffffffffffffffffffffffffffffffffffffff167f66d2598a2038401d48056acf767602f12eb7f2e76a99abe4c236c71385cbe446898d6040516113e592919061519f565b60405180910390a380511561147a5760008180602001905181019061140a91906151c4565b9050806040015115611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552523a2050726f74656374696f6e2069732061637469766500000000000000604482015260640161122b565b505b60008a8a6114898b8b8b61339d565b60405160240161149b9392919061523d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ab03673000000000000000000000000000000000000000000000000000000001790528151808301909252600c82527f426f72726f77416374696f6e00000000000000000000000000000000000000009082015290915060009061155590828481612d89565b9050806115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a20426f72726f77416374696f6e20657865637574696f6e206661696c60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b505050505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611688907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e4578697374000000000000000000000000848301528251918201869052339282019290925290925060009161170e916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c09190615109565b61184c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b60008089806020019051810190611863919061527c565b93505092505060006118d86040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e0000008152508a896040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015611969573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526119af9190810190615156565b90508973ffffffffffffffffffffffffffffffffffffffff166119d38b8b8b61339d565b73ffffffffffffffffffffffffffffffffffffffff167fb8eeb76a4fcf0ddd914f2df028f49cbe9966bee71f9bde10d6303e648d9908368b8f604051611a1a92919061519f565b60405180910390a3805115611a5757600081806020019051810190611a3f91906151c4565b9050806040015115611a5557611a558b8a613530565b505b8373ffffffffffffffffffffffffffffffffffffffff811663095ea7b3611a7f8d8d8d61339d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018790526044016020604051808303816000875af1158015611af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b159190615109565b611b7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552523a20416c6c6f77616e6365206e6f742073657400000000000000000000604482015260640161122b565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611ba28d8d8d61339d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018790526044016020604051808303816000875af1158015611c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c389190615109565b611c9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4552523a205472616e73666572206661696c6564000000000000000000000000604482015260640161122b565b60008d8d611cad8e8e8e61339d565b604051602401611cbf9392919061523d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd09d1c0c000000000000000000000000000000000000000000000000000000001790528151808301909252600b82527f5265706179416374696f6e00000000000000000000000000000000000000000090820152909150600090611d7990828481612d89565b905080611e08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a205265706179416374696f6e20657865637574696f6e206661696c6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b505050505050505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610f40565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610f40565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611f11907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611f97916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615109565b6120d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b600061210860405180606001604052806028815260200161588360289139888a886040516020016110dd939291906152c4565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015612199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bd9190615313565b905073ffffffffffffffffffffffffffffffffffffffff81166124c75760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166321f8a7216122626040518060400160405280601781526020017f416464726573732e496d706c656d656e746174696f6e730000000000000000008152508d6040516020016110dd9190614cd8565b6040518263ffffffff1660e01b815260040161228091815260200190565b602060405180830381865afa15801561229d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c19190615313565b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166024820152909150600090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de8000000000000000000000000000000000000000000000000000000001790525190915060009061239f9084908e908e9060019087908f90602401615330565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f89017b78000000000000000000000000000000000000000000000000000000001790528151808301909252600d82527f466163746f7279416374696f6e0000000000000000000000000000000000000090820152909150600090612459908f8484612d89565b9050806124c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f457865637574696f6e206661696c656400000000000000000000000000000000604482015260640161122b565b505050505b6124d387898b896135ec565b50505050505050505050565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610f40565b6040518060600160405280602981526020016158ef6029913981565b6040518060600160405280602381526020016158cc6023913981565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016125de907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091612664916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156126f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127169190615109565b6127a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b60008686866040516024016127b9939291906153a9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7feee92e000000000000000000000000000000000000000000000000000000001790528151808301909252601d82527f536574417070726f766564436f6c6c61746572616c546f4c656e6465720000009082015290915060009061287390828481612d89565b905080612902576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552523a20536574417070726f766564436f6c6c61746572616c546f4c656e6460448201527f6572206661696c65640000000000000000000000000000000000000000000000606482015260840161122b565b5050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016129a2907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091612a28916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015612ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ada9190615109565b612b66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b8573ffffffffffffffffffffffffffffffffffffffff16612b8887878761339d565b73ffffffffffffffffffffffffffffffffffffffff167f86d5653cadccdd70e7ba088d501333d05f6b256dfdac056e9719f5c5422120f5878a604051612bcf92919061519f565b60405180910390a36000876000612be789898961339d565b604051602401612bf9939291906153e9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f135390f9000000000000000000000000000000000000000000000000000000001790528151808301909252600e82527f5769746864726177416374696f6e00000000000000000000000000000000000090820152909150600090612cb390828481612d89565b905080612d1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f457865637574696f6e206661696c656400000000000000000000000000000000604482015260640161122b565b505050505050505050565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610f40565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610f40565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001612e22907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091612ea8916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015612f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5a9190615109565b612fe6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b600088308989896001811115612ffe57612ffe61542b565b60405160240161301295949392919061545a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b050000000000000000000000000000000000000000000000000000000017905290506130d87f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613d6c565b9998505050505050505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610f40565b60405180606001604052806025815260200161585e6025913981565b6040518060600160405280602881526020016158836028913981565b6040518060600160405280602b815260200161593d602b913981565b6040518060600160405280602181526020016158ab6021913981565b6040518060600160405280602581526020016159186025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610f40565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610f40565b60405180606001604052806024815260200161583a6024913981565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb9061329790859030906004016154b7565b602060405180830381865afa1580156132b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d89190615313565b92915050565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c90613355907f000000000000000000000000000000000000000000000000000000000000000090879087906004016154ef565b602060405180830381865af4158015613372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133969190615546565b9392505050565b6000806133d1604051806060016040528060288152602001615883602891398686866040516020016110dd939291906152c4565b6040517f21f8a721000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa15801561345f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134839190615313565b915073ffffffffffffffffffffffffffffffffffffffff8216613528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a205573657220446f6573204e6f74204861766520426c75657072696e60448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b509392505050565b600061353c8284613e49565b905080156135dd5760006135508484613ee7565b60c00151905060006135638383876140be565b9050806135cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552523a205472616e7366657220546f6b656e206661696c6564000000000000604482015260640161122b565b6135d6858561443a565b5050505050565b6135e7838361443a565b505050565b60008085806020019051810190613603919061555f565b505091509150600061363a6040518060600160405280602481526020016159686024913986856040516020016110dd9291906154b7565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190615109565b613777576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552523a204e6f7420616e20617070726f76656420636f6c6c61746572616c2060448201527f7479706500000000000000000000000000000000000000000000000000000000606482015260840161122b565b60006137e66040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525088876040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015613877573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526138bd9190810190615156565b90506138ca88888861339d565b73ffffffffffffffffffffffffffffffffffffffff16876040516138ee91906155a9565b60405180910390207f2077e788f427416739da4d8979e448575e581f54ca0aca136895b19b3992de998b6040516139259190614cd8565b60405180910390a38051156139ba5760008180602001905181019061394a91906151c4565b90508060400151156139b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552523a2050726f74656374696f6e2069732061637469766500000000000000604482015260640161122b565b505b8473ffffffffffffffffffffffffffffffffffffffff811663095ea7b36139e28b8b8b61339d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018890526044016020604051808303816000875af1158015613a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a789190615109565b613ade576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552523a20416c6c6f77616e6365206e6f742073657400000000000000000000604482015260640161122b565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb613b058b8b8b61339d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018890526044016020604051808303816000875af1158015613b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b9b9190615109565b613c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4552523a205472616e73666572206661696c6564000000000000000000000000604482015260640161122b565b60008a6000613c118c8c8c61339d565b604051602401613c23939291906153e9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb12f7774000000000000000000000000000000000000000000000000000000001790528151808301909252600c82527f537570706c79416374696f6e000000000000000000000000000000000000000090820152909150600090613cdd90828481612d89565b9050806115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a20537570706c79416374696f6e20657865637574696f6e206661696c60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b600080836001811115613d8157613d8161542b565b1480613d9e57506001836001811115613d9c57613d9c61542b565b145b613e04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e20747970650000000000604482015260640161122b565b6001836001811115613e1857613e1861542b565b03613e30576000808551602087018986f49050613e40565b600080855160208701888a87f190505b95945050505050565b600080613e56838561463e565b90506000613e6484866147a2565b9050600080613e7b83600001518560600151614923565b9050613e8781836155f4565b91508260400151600003613ea7576060830151613ea490836155f4565b91505b8260800151600003613ec55760a0830151613ec290836155f4565b91505b8260c00151600003613edd5750505191506132d89050565b5095945050505050565b613f6260405180610120016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000613fd16040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525085856040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015614062573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526140a89190810190615156565b905080806020019051810190613e409190615627565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905260009073__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b15801561412357600080fd5b505af4158015614137573d6000803e3d6000fd5b50505050600061419a6040518060600160405280602381526020016158cc602391396040516020016110dd9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa15801561422b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061424f9190615313565b905060008190508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f910881142f0e79d2011ed718d122f3f6532083ea54634d56cd98a8a12c78370c8a6040516142cc91815260200190565b60405180910390a460405173ffffffffffffffffffffffffffffffffffffffff8088166024830152821660448201523060648201526084810188905260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c54de4f000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f5472616e73666572546f6b656e416374696f6e00000000000000000000000000908201529091506143c69060008381612d89565b94508461442f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a205472616e73666572546f6b656e416374696f6e206661696c656400604482015260640161122b565b505050509392505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156144b357600080fd5b505af41580156144c7573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561452d57600080fd5b505af4158015614541573d6000803e3d6000fd5b5050505060006145916040518060600160405280602b815260200161593d602b91396040805173ffffffffffffffffffffffffffffffffffffffff871660208201529081018590526060016110dd565b6040517f616b59f6000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063616b59f690602401600060405180830381600087803b15801561461c57600080fd5b505af1158015614630573d6000803e3d6000fd5b505050506135e7838361493b565b614646614c1b565b60006146b56040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525085856040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015614746573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261478c9190810190615156565b905080806020019051810190613e4091906151c4565b6147ea60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006148366040518060600160405280602b815260200161593d602b91396040805173ffffffffffffffffffffffffffffffffffffffff881660208201529081018690526060016110dd565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa1580156148c7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261490d9190810190615156565b905080806020019051810190613e4091906156f6565b600060646149318385615786565b613396919061579d565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156149b457600080fd5b505af41580156149c8573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015614a2e57600080fd5b505af4158015614a42573d6000803e3d6000fd5b505060408051426020820152600081830152815180820383018152606090910191829052925073ffffffffffffffffffffffffffffffffffffffff851691507fa946a7e573f680e23411f2fbc5515ecf7f42eecf631fb7e430349c9db36072cf90614ab090859085906157d8565b60405180910390a260008184846004604051602401614ad294939291906157f1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f27365747000000000000000000000000000000000000000000000000000000001790528151808301909252601682527f55706461746550726f74656374696f6e416374696f6e0000000000000000000090820152909150600090614b8c90828481612d89565b9050806135d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a2055706461746550726f74656374696f6e416374696f6e206661696c60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b6040518060e00160405280600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160006002811115614c6557614c6561542b565b905290565b60005b83811015614c85578181015183820152602001614c6d565b50506000910152565b60008151808452614ca6816020860160208601614c6a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006133966020830184614c8e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715614d3d57614d3d614ceb565b60405290565b604051610120810167ffffffffffffffff81118282101715614d3d57614d3d614ceb565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614dae57614dae614ceb565b604052919050565b600067ffffffffffffffff821115614dd057614dd0614ceb565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112614e0d57600080fd5b8135614e20614e1b82614db6565b614d67565b818152846020838601011115614e3557600080fd5b816020850160208301376000918101602001919091529392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114614e7457600080fd5b50565b600080600080600060a08688031215614e8f57600080fd5b853567ffffffffffffffff80821115614ea757600080fd5b614eb389838a01614dfc565b96506020880135955060408801359150614ecc82614e52565b90935060608701359080821115614ee257600080fd5b50614eef88828901614dfc565b95989497509295608001359392505050565b600080600080600060a08688031215614f1957600080fd5b85359450602086013567ffffffffffffffff80821115614f3857600080fd5b614f4489838a01614dfc565b955060408801359150614ecc82614e52565b8015158114614e7457600080fd5b600080600060608486031215614f7957600080fd5b833567ffffffffffffffff811115614f9057600080fd5b614f9c86828701614dfc565b9350506020840135614fad81614e52565b91506040840135614fbd81614f56565b809150509250925092565b60008060008060808587031215614fde57600080fd5b843567ffffffffffffffff80821115614ff657600080fd5b61500288838901614dfc565b95506020870135915061501482614e52565b9093506040860135908082111561502a57600080fd5b5061503787828801614dfc565b949793965093946060013593505050565b6000806000806080858703121561505e57600080fd5b843567ffffffffffffffff8082111561507657600080fd5b61508288838901614dfc565b955060208701359450604087013591508082111561509f57600080fd5b506150ac87828801614dfc565b9250506060850135600281106150c157600080fd5b939692955090935050565b6000602082840312156150de57600080fd5b813567ffffffffffffffff8111156150f557600080fd5b61510184828501614dfc565b949350505050565b60006020828403121561511b57600080fd5b815161339681614f56565b6000615134614e1b84614db6565b905082815283838301111561514857600080fd5b613396836020830184614c6a565b60006020828403121561516857600080fd5b815167ffffffffffffffff81111561517f57600080fd5b8201601f8101841361519057600080fd5b61510184825160208401615126565b6040815260006151b26040830185614c8e565b8281036020840152613e408185614c8e565b600060e082840312156151d657600080fd5b6151de614d1a565b825181526020830151602082015260408301516151fa81614f56565b80604083015250606083015160608201526080830151608082015260a083015160a082015260c08301516003811061523157600080fd5b60c08201529392505050565b6060815260006152506060830186614c8e565b905083602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b6000806000806080858703121561529257600080fd5b845161529d81614e52565b60208601519094506152ae81614e52565b6040860151606090960151949790965092505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006152f36060830185614c8e565b9050826040830152949350505050565b805161530e81614e52565b919050565b60006020828403121561532557600080fd5b815161339681614e52565b600073ffffffffffffffffffffffffffffffffffffffff808916835260e0602084015261536060e0840189614c8e565b83810380604086015260008252828916606086015287151560808601526020810160a0860152506153946020820187614c8e565b925050508260c0830152979650505050505050565b6060815260006153bc6060830186614c8e565b73ffffffffffffffffffffffffffffffffffffffff94909416602083015250901515604090910152919050565b6060815260006153fc6060830186614c8e565b905060ff8416602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60a08152600061546d60a0830188614c8e565b73ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015282810360608401526154a18186614c8e565b91505060ff831660808301529695505050505050565b6040815260006154ca6040830185614c8e565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7fffffffff000000000000000000000000000000000000000000000000000000008416815260606020820152600061552a6060830185614c8e565b828103604084015261553c8185614c8e565b9695505050505050565b60006020828403121561555857600080fd5b5051919050565b6000806000806080858703121561557557600080fd5b845161558081614e52565b60208601516040870151919550935061559881614e52565b60608601519092506150c181614e52565b600082516155bb818460208701614c6a565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156132d8576132d86155c5565b600082601f83011261561857600080fd5b61339683835160208501615126565b60006020828403121561563957600080fd5b815167ffffffffffffffff8082111561565157600080fd5b90830190610120828603121561566657600080fd5b61566e614d43565b8251815261567e60208401615303565b602082015260408301516040820152606083015160608201526080830151828111156156a957600080fd5b6156b587828601615607565b60808301525060a083015160a08201526156d160c08401615303565b60c082015260e083810151908201526101009283015192810192909252509392505050565b600061010080838503121561570a57600080fd5b6040519081019067ffffffffffffffff8211818310171561572d5761572d614ceb565b81604052835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c082015260e084015160e0820152809250505092915050565b80820281158282048414176132d8576132d86155c5565b6000826157d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8281526040602082015260006151016040830184614c8e565b6080815260006158046080830187614c8e565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260ff1660609091015291905056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"768:16035:85:-:0;;;848:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;900:16;536::139;458::108;493:28;;;;;;-1:-1:-1;;;511:23:249;;559:1;550:11;;309:258;493:28:108;;;;-1:-1:-1;;493:28:108;;;;;;;;;483:39;;493:28;483:39;;;;-1:-1:-1;;;;;897:29:138;;889:77;;;;-1:-1:-1;;;889:77:138;;774:2:249;889:77:138;;;756:21:249;813:2;793:18;;;786:30;852:34;832:18;;;825:62;-1:-1:-1;;;903:18:249;;;896:33;946:19;;889:77:138;;;;;;;;;-1:-1:-1;;;;;;984:23:138;;976:65;;;;-1:-1:-1;;;976:65:138;;1178:2:249;976:65:138;;;1160:21:249;1217:2;1197:18;;;1190:30;1256:31;1236:18;;;1229:59;1305:18;;976:65:138;:353:249;:65:138;-1:-1:-1;;;;;1051:51:138;;;;;-1:-1:-1;;;;;;1112:22:138;;;-1:-1:-1;588:22:139::1;::::0;;;;::::1;::::0;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;;612:15;;564:11:::1;::::0;578:50:::1;::::0;588:22;612:15:::1;::::0;::::1;1536:2:249::0;1518:21;;;1575:1;1555:18;;;1548:29;-1:-1:-1;;;1608:2:249;1593:18;;1586:31;1649:2;1634:18;;1334:324;612:15:139::1;;::::0;;-1:-1:-1;;612:15:139;;::::1;::::0;;;;;;578:9:::1;:50::i;:::-;564:64;;638:12;653:15;;-1:-1:-1::0;;;;;653:26:139::1;;680:3;653:31;;;;;;;;;;;;;1809:25:249::0;;1797:2;1782:18;;1663:177;653:31:139::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;694:30;::::0;-1:-1:-1;;;694:30:139;;-1:-1:-1;;;;;2017:32:249;;694:30:139::1;::::0;::::1;1999:51:249::0;638:46:139;;-1:-1:-1;694:8:139::1;::::0;:24:::1;::::0;1972:18:249;;694:30:139::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;;;;734:42:139::1;;::::0;-1:-1:-1;768:16035:85;;-1:-1:-1;;768:16035:85;1180:170:138;1316:9;;1292:51;;-1:-1:-1;;;1292:51:138;;1266:7;;1292:13;;:23;;:51;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:138:o;14:290:249:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:249;;214:42;;204:70;;270:1;267;260:12;2061:423;2103:3;2141:5;2135:12;2168:6;2163:3;2156:19;2193:1;2203:162;2217:6;2214:1;2211:13;2203:162;;;2279:4;2335:13;;;2331:22;;2325:29;2307:11;;;2303:20;;2296:59;2232:12;2203:162;;;2207:3;2410:1;2403:4;2394:6;2389:3;2385:16;2381:27;2374:38;2473:4;2466:2;2462:7;2457:2;2449:6;2445:15;2441:29;2436:3;2432:39;2428:50;2421:57;;;2061:423;;;;:::o;2489:485::-;2739:10;2734:3;2730:20;2722:6;2718:33;2707:9;2700:52;2788:2;2783;2772:9;2768:18;2761:30;2681:4;2814:45;2855:2;2844:9;2840:18;2832:6;2814:45;:::i;:::-;2907:9;2899:6;2895:22;2890:2;2879:9;2875:18;2868:50;2935:33;2961:6;2953;2935:33;:::i;:::-;2927:41;2489:485;-1:-1:-1;;;;;;2489:485:249:o;2979:184::-;3049:6;3102:2;3090:9;3081:7;3077:23;3073:32;3070:52;;;3118:1;3115;3108:12;3070:52;-1:-1:-1;3141:16:249;;2979:184;-1:-1:-1;2979:184:249:o;:::-;768:16035:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"src/libraries/Security.sol":{"Security":[{"start":606,"length":20},{"start":17858,"length":20},{"start":18769,"length":20},{"start":18890,"length":20},{"start":20050,"length":20},{"start":20171,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":728,"length":20},{"start":14300,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061043a5760003560e01c80637feee92e11610235578063ba9a08d711610135578063d83205c0116100c8578063e642ad3411610097578063ec11384a1161007c578063ec11384a14610e63578063f61e60f214610e9f578063ffbf516314610edb57600080fd5b8063e642ad3414610e1f578063eaca386414610e5b57600080fd5b8063d83205c014610d63578063d88597de14610d9f578063dbd55fb314610ddb578063e51a3bab14610de357600080fd5b8063ca6d5e3311610104578063ca6d5e3314610ca7578063ccca891114610ce3578063d017d35714610ceb578063d15263d314610d2757600080fd5b8063ba9a08d714610c1f578063be22fa1e14610c5b578063c414d4f914610c63578063c5ad787914610c6b57600080fd5b806395789e1c116101c8578063a5be606311610197578063aacb7f341161017c578063aacb7f3414610b9f578063af895a3b14610ba7578063b70855fb14610be357600080fd5b8063a5be606314610b63578063a652cb801461046f57600080fd5b806395789e1c146105175780639d18526414610b175780639e5f854214610b53578063a2fd43c514610b5b57600080fd5b80638c3e62b6116102045780638c3e62b614610aa85780638d7e9e9414610ab057806391aab3e414610ad357806391b9b82714610b0f57600080fd5b80637feee92e14610a3e578063856203f514610a515780638b3e047114610a645780638b40da7d14610aa057600080fd5b806359dcf3f611610340578063678df18f116102d3578063739baf49116102a25780637a25c9d3116102875780637a25c9d31461098a5780637d49df3b146109c65780637d95de8e14610a0257600080fd5b8063739baf491461091257806379c52aca1461094e57600080fd5b8063678df18f14610856578063697e744c146108925780636a0b3f641461089a578063724348ab146108d657600080fd5b8063608dade91161030f578063608dade91461076657806361945bfc146107a257806362a4c3df146107de578063638bf74f1461081a57600080fd5b806359dcf3f6146106de5780635e2092491461071a5780635e61dc38146107225780635f39ca221461072a57600080fd5b806326026d18116103d3578063420ea360116103a257806342ff308b1161038757806342ff308b14610653578063430c6fe61461068f57806351de0372146106cb57600080fd5b8063420ea360146105db578063423ac8d91461061757600080fd5b806326026d181461051f578063264c13561461055b5780632a0f4d6b146105975780632d1da17e1461059f57600080fd5b80630d6c8e771161040f5780630d6c8e77146104b35780630e494332146104c8578063216684b31461050457806325889b221461051757600080fd5b806272e1401461043f578062a9d96e1461045a578063057afbfe1461046f578063094d3a34146104ab575b600080fd5b610447610f13565b6040519081526020015b60405180910390f35b610462610f78565b6040516104519190614cd8565b6104626040518060400160405280601d81526020017f416464726573732e546f6b656e2e436861696e2e50726963654665656400000081525081565b610447610f94565b6104c66104c1366004614e77565b610fc5565b005b6104626040518060400160405280601581526020017f4c502e557365722e526563656970742e436f756e74000000000000000000000081525081565b6104c6610512366004614e77565b6115f2565b610447611e19565b6104626040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e57455448000000000081525081565b6104626040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e43545374616b696e67000000000081525081565b610447611e4a565b6104626040518060400160405280602081526020017f426c75657072696e744d616e616765722e4e616d652e426c75657072696e747381525081565b6104626040518060400160405280601681526020017f416464726573732e4d616e616765722e4d6f64756c650000000000000000000081525081565b6104626040518060400160405280601581526020017f416464726573732e4c656e6465722e4d61726b6574000000000000000000000081525081565b6104626040518060400160405280601781526020017f506f7274666f6c696f2e49642e496e6465782e5573657200000000000000000081525081565b6104626040518060400160405280601b81526020017f416464726573732e436f6e7472616374732e506f7274666f6c696f000000000081525081565b6104c66106d9366004614f01565b611e7b565b6104626040518060400160405280601a81526020017f4d6f64756c654d616e616765722e4e616d652e4d6f64756c657300000000000081525081565b6104476124df565b610462612510565b6104626040518060400160405280601d81526020017f416464726573732e4d616e616765722e416363657373436f6e74726f6c00000081525081565b6104626040518060400160405280601d81526020017f416464726573732e436f6e74726163742e546f6b656e2e43417373657400000081525081565b6104626040518060400160405280601c81526020017f4c6f616e2e557365722e49642e4c6f616e496e697469616c446174610000000081525081565b6104626040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525081565b6104626040518060400160405280600f81526020017f506f7274666f6c696f2e546f2e4964000000000000000000000000000000000081525081565b6104626040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525081565b61046261252c565b6104626040518060400160405280601b81526020017f416464726573732e436f6e74726163742e546f6b656e2e55534443000000000081525081565b6104626040518060400160405280600f81526020017f436f756e7465722e4c6f616e2e4964000000000000000000000000000000000081525081565b6104626040518060400160405280601a81526020017f416374696f6e4d616e616765722e4e616d652e416374696f6e7300000000000081525081565b6104626040518060400160405280601481526020017f436f756e7465722e506f7274666f6c696f2e496400000000000000000000000081525081565b6104626040518060400160405280601481526020017f526f6c652e4e616d652e557365722e457869737400000000000000000000000081525081565b6104626040518060400160405280601781526020017f4c6f616e2e557365722e49642e426f72726f774461746100000000000000000081525081565b6104626040518060400160405280601281526020017f4c6f616e2e557365722e496e6465782e4964000000000000000000000000000081525081565b6104c6610a4c366004614f64565b612548565b6104c6610a5f366004614fc8565b61290c565b6104626040518060400160405280601a81526020017f416464726573732e436f6e74726163742e546f6b656e2e45544800000000000081525081565b610447612d27565b610447612d58565b610ac3610abe366004615048565b612d89565b6040519015158152602001610451565b6104626040518060400160405280600f81526020017f506f7274666f6c696f2e49642e546f000000000000000000000000000000000081525081565b6104476130e5565b6104626040518060400160405280601781526020017f4c6f616e2e557365722e49642e4c6f616e55706461746500000000000000000081525081565b610462613116565b610462613132565b6104626040518060400160405280601081526020017f436f756e7465722e436c61696d2e49640000000000000000000000000000000081525081565b61046261314e565b6104626040518060400160405280601681526020017f5374616b696e672e526577617264732e4d61747269780000000000000000000081525081565b6104626040518060400160405280602081526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e2e496481525081565b6104626040518060400160405280601681526020017f416464726573732e4d616e616765722e416374696f6e0000000000000000000081525081565b61046261316a565b610462613186565b6104626040518060400160405280601581526020017f436f756e7465722e50726f74656374696f6e2e4964000000000000000000000081525081565b6104626040518060400160405280601981526020017f506f7274666f6c696f2e49642e496e6465782e4c6f616e49640000000000000081525081565b6104476131a2565b6104626040518060400160405280601581526020017f416464726573732e557365722e436f6e6372657465000000000000000000000081525081565b6104626040518060400160405280601881526020017f50726f74656374696f6e2e557365722e49642e436c61696d000000000000000081525081565b6104626040518060400160405280601881526020017f4c502e5265636569707449642e546f2e506f736974696f6e000000000000000081525081565b6104626040518060400160405280601981526020017f416464726573732e436f6e74726163742e546f6b656e2e43540000000000000081525081565b6104476131d3565b6104626040518060400160405280601e81526020017f416464726573732e436f6e7472616374732e5661756c742e4d6173746572000081525081565b6104626040518060400160405280601981526020017f416464726573732e4d616e616765722e426c75657072696e740000000000000081525081565b610462613204565b6104626040518060400160405280601481526020017f4c502e5265636569707449642e546f2e5573657200000000000000000000000081525081565b6104626040518060400160405280601781526020017f436f756e7465722e52656365697074546f6b656e2e496400000000000000000081525081565b610eee610ee93660046150cc565b613220565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610451565b6040517f424c55455052494e54000000000000000000000000000000000000000000000060208201526029015b604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681565b6040518060600160405280602481526020016159686024913981565b6040517f4d4f44554c4500000000000000000000000000000000000000000000000000006020820152602601610f40565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916600060405160200161105b907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e457869737400000000000000000000000084830152825191820186905233928201929092529092506000916110f1916060015b6040516020818303038152906040526132de565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa15801561117f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a39190615109565b611234576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f640000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b60006112a36040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525088876040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015611334573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261137a9190810190615156565b90508773ffffffffffffffffffffffffffffffffffffffff1661139e89898961339d565b73ffffffffffffffffffffffffffffffffffffffff167f66d2598a2038401d48056acf767602f12eb7f2e76a99abe4c236c71385cbe446898d6040516113e592919061519f565b60405180910390a380511561147a5760008180602001905181019061140a91906151c4565b9050806040015115611478576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552523a2050726f74656374696f6e2069732061637469766500000000000000604482015260640161122b565b505b60008a8a6114898b8b8b61339d565b60405160240161149b9392919061523d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f8ab03673000000000000000000000000000000000000000000000000000000001790528151808301909252600c82527f426f72726f77416374696f6e00000000000000000000000000000000000000009082015290915060009061155590828481612d89565b9050806115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a20426f72726f77416374696f6e20657865637574696f6e206661696c60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b505050505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611688907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e4578697374000000000000000000000000848301528251918201869052339282019290925290925060009161170e916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c09190615109565b61184c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b60008089806020019051810190611863919061527c565b93505092505060006118d86040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e0000008152508a896040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015611969573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526119af9190810190615156565b90508973ffffffffffffffffffffffffffffffffffffffff166119d38b8b8b61339d565b73ffffffffffffffffffffffffffffffffffffffff167fb8eeb76a4fcf0ddd914f2df028f49cbe9966bee71f9bde10d6303e648d9908368b8f604051611a1a92919061519f565b60405180910390a3805115611a5757600081806020019051810190611a3f91906151c4565b9050806040015115611a5557611a558b8a613530565b505b8373ffffffffffffffffffffffffffffffffffffffff811663095ea7b3611a7f8d8d8d61339d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018790526044016020604051808303816000875af1158015611af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b159190615109565b611b7b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552523a20416c6c6f77616e6365206e6f742073657400000000000000000000604482015260640161122b565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611ba28d8d8d61339d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018790526044016020604051808303816000875af1158015611c14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c389190615109565b611c9e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4552523a205472616e73666572206661696c6564000000000000000000000000604482015260640161122b565b60008d8d611cad8e8e8e61339d565b604051602401611cbf9392919061523d565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd09d1c0c000000000000000000000000000000000000000000000000000000001790528151808301909252600b82527f5265706179416374696f6e00000000000000000000000000000000000000000090820152909150600090611d7990828481612d89565b905080611e08576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a205265706179416374696f6e20657865637574696f6e206661696c6560448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b505050505050505050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101610f40565b6040517f434f4e43524554455f4d414e41474552000000000000000000000000000000006020820152603001610f40565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001611f11907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091611f97916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015612025573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120499190615109565b6120d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b600061210860405180606001604052806028815260200161588360289139888a886040516020016110dd939291906152c4565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa158015612199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121bd9190615313565b905073ffffffffffffffffffffffffffffffffffffffff81166124c75760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166321f8a7216122626040518060400160405280601781526020017f416464726573732e496d706c656d656e746174696f6e730000000000000000008152508d6040516020016110dd9190614cd8565b6040518263ffffffff1660e01b815260040161228091815260200190565b602060405180830381865afa15801561229d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c19190615313565b60405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166024820152909150600090604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc4d66de8000000000000000000000000000000000000000000000000000000001790525190915060009061239f9084908e908e9060019087908f90602401615330565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f89017b78000000000000000000000000000000000000000000000000000000001790528151808301909252600d82527f466163746f7279416374696f6e0000000000000000000000000000000000000090820152909150600090612459908f8484612d89565b9050806124c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f457865637574696f6e206661696c656400000000000000000000000000000000604482015260640161122b565b505050505b6124d387898b896135ec565b50505050505050505050565b6040517f53544f524147455f41444d494e000000000000000000000000000000000000006020820152602d01610f40565b6040518060600160405280602981526020016158ef6029913981565b6040518060600160405280602381526020016158cc6023913981565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016125de907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091612664916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156126f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127169190615109565b6127a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b60008686866040516024016127b9939291906153a9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7feee92e000000000000000000000000000000000000000000000000000000001790528151808301909252601d82527f536574417070726f766564436f6c6c61746572616c546f4c656e6465720000009082015290915060009061287390828481612d89565b905080612902576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552523a20536574417070726f766564436f6c6c61746572616c546f4c656e6460448201527f6572206661696c65640000000000000000000000000000000000000000000000606482015260840161122b565b5050505050505050565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191660006040516020016129a2907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091612a28916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015612ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ada9190615109565b612b66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b8573ffffffffffffffffffffffffffffffffffffffff16612b8887878761339d565b73ffffffffffffffffffffffffffffffffffffffff167f86d5653cadccdd70e7ba088d501333d05f6b256dfdac056e9719f5c5422120f5878a604051612bcf92919061519f565b60405180910390a36000876000612be789898961339d565b604051602401612bf9939291906153e9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f135390f9000000000000000000000000000000000000000000000000000000001790528151808301909252600e82527f5769746864726177416374696f6e00000000000000000000000000000000000090820152909150600090612cb390828481612d89565b905080612d1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f457865637574696f6e206661696c656400000000000000000000000000000000604482015260640161122b565b505050505050505050565b6040517f4d4f44554c455f4d414e414745520000000000000000000000000000000000006020820152602e01610f40565b6040517f5355444f5f41444d494e000000000000000000000000000000000000000000006020820152602a01610f40565b6040517f424c55455052494e545f4d414e414745520000000000000000000000000000006020820152600090603101604051602081830303815290604052805190602001207bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166000604051602001612e22907f50524f544f434f4c000000000000000000000000000000000000000000000000815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201208383018352601484527f526f6c652e4e616d652e557365722e45786973740000000000000000000000008483015282519182018690523392820192909252909250600091612ea8916060016110dd565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa158015612f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5a9190615109565b612fe6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a204163636573732044656e69656420526f6c65204e6f7420466f756e60448201527f6400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b600088308989896001811115612ffe57612ffe61542b565b60405160240161301295949392919061545a565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f999d0b050000000000000000000000000000000000000000000000000000000017905290506130d87f0000000000000000000000000000000000000000000000000000000000000000600083817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613d6c565b9998505050505050505050565b6040517f50524f544f434f4c0000000000000000000000000000000000000000000000006020820152602801610f40565b60405180606001604052806025815260200161585e6025913981565b6040518060600160405280602881526020016158836028913981565b6040518060600160405280602b815260200161593d602b913981565b6040518060600160405280602181526020016158ab6021913981565b6040518060600160405280602581526020016159186025913981565b6040517f50524f544f434f4c5f4d414e41474552000000000000000000000000000000006020820152603001610f40565b6040517f414354494f4e00000000000000000000000000000000000000000000000000006020820152602601610f40565b60405180606001604052806024815260200161583a6024913981565b6040517fc7cb09bb00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c7cb09bb9061329790859030906004016154b7565b602060405180830381865afa1580156132b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132d89190615313565b92915050565b6040517f7b50ee2c00000000000000000000000000000000000000000000000000000000815260009073__$cb588f1a84862ec6179da8c4e68bd890a8$__90637b50ee2c90613355907f000000000000000000000000000000000000000000000000000000000000000090879087906004016154ef565b602060405180830381865af4158015613372573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133969190615546565b9392505050565b6000806133d1604051806060016040528060288152602001615883602891398686866040516020016110dd939291906152c4565b6040517f21f8a721000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16906321f8a72190602401602060405180830381865afa15801561345f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134839190615313565b915073ffffffffffffffffffffffffffffffffffffffff8216613528576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552523a205573657220446f6573204e6f74204861766520426c75657072696e60448201527f7400000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b509392505050565b600061353c8284613e49565b905080156135dd5760006135508484613ee7565b60c00151905060006135638383876140be565b9050806135cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4552523a205472616e7366657220546f6b656e206661696c6564000000000000604482015260640161122b565b6135d6858561443a565b5050505050565b6135e7838361443a565b505050565b60008085806020019051810190613603919061555f565b505091509150600061363a6040518060600160405280602481526020016159686024913986856040516020016110dd9291906154b7565b6040517f7ae1cfca000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690637ae1cfca90602401602060405180830381865afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190615109565b613777576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552523a204e6f7420616e20617070726f76656420636f6c6c61746572616c2060448201527f7479706500000000000000000000000000000000000000000000000000000000606482015260840161122b565b60006137e66040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525088876040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015613877573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526138bd9190810190615156565b90506138ca88888861339d565b73ffffffffffffffffffffffffffffffffffffffff16876040516138ee91906155a9565b60405180910390207f2077e788f427416739da4d8979e448575e581f54ca0aca136895b19b3992de998b6040516139259190614cd8565b60405180910390a38051156139ba5760008180602001905181019061394a91906151c4565b90508060400151156139b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552523a2050726f74656374696f6e2069732061637469766500000000000000604482015260640161122b565b505b8473ffffffffffffffffffffffffffffffffffffffff811663095ea7b36139e28b8b8b61339d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018890526044016020604051808303816000875af1158015613a54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a789190615109565b613ade576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f4552523a20416c6c6f77616e6365206e6f742073657400000000000000000000604482015260640161122b565b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb613b058b8b8b61339d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018890526044016020604051808303816000875af1158015613b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b9b9190615109565b613c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4552523a205472616e73666572206661696c6564000000000000000000000000604482015260640161122b565b60008a6000613c118c8c8c61339d565b604051602401613c23939291906153e9565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb12f7774000000000000000000000000000000000000000000000000000000001790528151808301909252600c82527f537570706c79416374696f6e000000000000000000000000000000000000000090820152909150600090613cdd90828481612d89565b9050806115e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a20537570706c79416374696f6e20657865637574696f6e206661696c60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b600080836001811115613d8157613d8161542b565b1480613d9e57506001836001811115613d9c57613d9c61542b565b145b613e04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4552523a20496e76616c6964206f7065726174696f6e20747970650000000000604482015260640161122b565b6001836001811115613e1857613e1861542b565b03613e30576000808551602087018986f49050613e40565b600080855160208701888a87f190505b95945050505050565b600080613e56838561463e565b90506000613e6484866147a2565b9050600080613e7b83600001518560600151614923565b9050613e8781836155f4565b91508260400151600003613ea7576060830151613ea490836155f4565b91505b8260800151600003613ec55760a0830151613ec290836155f4565b91505b8260c00151600003613edd5750505191506132d89050565b5095945050505050565b613f6260405180610120016040528060008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b6000613fd16040518060400160405280601b81526020017f4c6f616e2e557365722e49642e4c6f616e537570706c7944617461000000000081525085856040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015614062573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526140a89190810190615156565b905080806020019051810190613e409190615627565b6040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905260009073__$8c45cd224cdbab359a019cf6615f9f99f1$__906238795f9060240160006040518083038186803b15801561412357600080fd5b505af4158015614137573d6000803e3d6000fd5b50505050600061419a6040518060600160405280602381526020016158cc602391396040516020016110dd9060208082526001908201527f7c00000000000000000000000000000000000000000000000000000000000000604082015260600190565b6040517f21f8a7210000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016906321f8a72190602401602060405180830381865afa15801561422b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061424f9190615313565b905060008190508073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f910881142f0e79d2011ed718d122f3f6532083ea54634d56cd98a8a12c78370c8a6040516142cc91815260200190565b60405180910390a460405173ffffffffffffffffffffffffffffffffffffffff8088166024830152821660448201523060648201526084810188905260009060a401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2c54de4f000000000000000000000000000000000000000000000000000000001790528151808301909252601382527f5472616e73666572546f6b656e416374696f6e00000000000000000000000000908201529091506143c69060008381612d89565b94508461442f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f4552523a205472616e73666572546f6b656e416374696f6e206661696c656400604482015260640161122b565b505050509392505050565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156144b357600080fd5b505af41580156144c7573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b15801561452d57600080fd5b505af4158015614541573d6000803e3d6000fd5b5050505060006145916040518060600160405280602b815260200161593d602b91396040805173ffffffffffffffffffffffffffffffffffffffff871660208201529081018590526060016110dd565b6040517f616b59f6000000000000000000000000000000000000000000000000000000008152600481018290529091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff169063616b59f690602401600060405180830381600087803b15801561461c57600080fd5b505af1158015614630573d6000803e3d6000fd5b505050506135e7838361493b565b614646614c1b565b60006146b56040518060400160405280601d81526020017f50726f74656374696f6e2e557365722e49642e50726f74656374696f6e00000081525085856040516020016110dd92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa158015614746573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261478c9190810190615156565b905080806020019051810190613e4091906151c4565b6147ea60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b60006148366040518060600160405280602b815260200161593d602b91396040805173ffffffffffffffffffffffffffffffffffffffff881660208201529081018690526060016110dd565b6040517fc031a1800000000000000000000000000000000000000000000000000000000081526004810182905290915060009073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c031a18090602401600060405180830381865afa1580156148c7573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261490d9190810190615156565b905080806020019051810190613e4091906156f6565b600060646149318385615786565b613396919061579d565b6040517f5e8e30a600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015273__$8c45cd224cdbab359a019cf6615f9f99f1$__90635e8e30a69060240160006040518083038186803b1580156149b457600080fd5b505af41580156149c8573d6000803e3d6000fd5b50506040517e38795f0000000000000000000000000000000000000000000000000000000081526004810184905273__$8c45cd224cdbab359a019cf6615f9f99f1$__92506238795f915060240160006040518083038186803b158015614a2e57600080fd5b505af4158015614a42573d6000803e3d6000fd5b505060408051426020820152600081830152815180820383018152606090910191829052925073ffffffffffffffffffffffffffffffffffffffff851691507fa946a7e573f680e23411f2fbc5515ecf7f42eecf631fb7e430349c9db36072cf90614ab090859085906157d8565b60405180910390a260008184846004604051602401614ad294939291906157f1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f27365747000000000000000000000000000000000000000000000000000000001790528151808301909252601682527f55706461746550726f74656374696f6e416374696f6e0000000000000000000090820152909150600090614b8c90828481612d89565b9050806135d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f4552523a2055706461746550726f74656374696f6e416374696f6e206661696c60448201527f6564000000000000000000000000000000000000000000000000000000000000606482015260840161122b565b6040518060e00160405280600081526020016000815260200160001515815260200160008152602001600081526020016000815260200160006002811115614c6557614c6561542b565b905290565b60005b83811015614c85578181015183820152602001614c6d565b50506000910152565b60008151808452614ca6816020860160208601614c6a565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006133966020830184614c8e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715614d3d57614d3d614ceb565b60405290565b604051610120810167ffffffffffffffff81118282101715614d3d57614d3d614ceb565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614dae57614dae614ceb565b604052919050565b600067ffffffffffffffff821115614dd057614dd0614ceb565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112614e0d57600080fd5b8135614e20614e1b82614db6565b614d67565b818152846020838601011115614e3557600080fd5b816020850160208301376000918101602001919091529392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114614e7457600080fd5b50565b600080600080600060a08688031215614e8f57600080fd5b853567ffffffffffffffff80821115614ea757600080fd5b614eb389838a01614dfc565b96506020880135955060408801359150614ecc82614e52565b90935060608701359080821115614ee257600080fd5b50614eef88828901614dfc565b95989497509295608001359392505050565b600080600080600060a08688031215614f1957600080fd5b85359450602086013567ffffffffffffffff80821115614f3857600080fd5b614f4489838a01614dfc565b955060408801359150614ecc82614e52565b8015158114614e7457600080fd5b600080600060608486031215614f7957600080fd5b833567ffffffffffffffff811115614f9057600080fd5b614f9c86828701614dfc565b9350506020840135614fad81614e52565b91506040840135614fbd81614f56565b809150509250925092565b60008060008060808587031215614fde57600080fd5b843567ffffffffffffffff80821115614ff657600080fd5b61500288838901614dfc565b95506020870135915061501482614e52565b9093506040860135908082111561502a57600080fd5b5061503787828801614dfc565b949793965093946060013593505050565b6000806000806080858703121561505e57600080fd5b843567ffffffffffffffff8082111561507657600080fd5b61508288838901614dfc565b955060208701359450604087013591508082111561509f57600080fd5b506150ac87828801614dfc565b9250506060850135600281106150c157600080fd5b939692955090935050565b6000602082840312156150de57600080fd5b813567ffffffffffffffff8111156150f557600080fd5b61510184828501614dfc565b949350505050565b60006020828403121561511b57600080fd5b815161339681614f56565b6000615134614e1b84614db6565b905082815283838301111561514857600080fd5b613396836020830184614c6a565b60006020828403121561516857600080fd5b815167ffffffffffffffff81111561517f57600080fd5b8201601f8101841361519057600080fd5b61510184825160208401615126565b6040815260006151b26040830185614c8e565b8281036020840152613e408185614c8e565b600060e082840312156151d657600080fd5b6151de614d1a565b825181526020830151602082015260408301516151fa81614f56565b80604083015250606083015160608201526080830151608082015260a083015160a082015260c08301516003811061523157600080fd5b60c08201529392505050565b6060815260006152506060830186614c8e565b905083602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b6000806000806080858703121561529257600080fd5b845161529d81614e52565b60208601519094506152ae81614e52565b6040860151606090960151949790965092505050565b73ffffffffffffffffffffffffffffffffffffffff841681526060602082015260006152f36060830185614c8e565b9050826040830152949350505050565b805161530e81614e52565b919050565b60006020828403121561532557600080fd5b815161339681614e52565b600073ffffffffffffffffffffffffffffffffffffffff808916835260e0602084015261536060e0840189614c8e565b83810380604086015260008252828916606086015287151560808601526020810160a0860152506153946020820187614c8e565b925050508260c0830152979650505050505050565b6060815260006153bc6060830186614c8e565b73ffffffffffffffffffffffffffffffffffffffff94909416602083015250901515604090910152919050565b6060815260006153fc6060830186614c8e565b905060ff8416602083015273ffffffffffffffffffffffffffffffffffffffff83166040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60a08152600061546d60a0830188614c8e565b73ffffffffffffffffffffffffffffffffffffffff8716602084015285604084015282810360608401526154a18186614c8e565b91505060ff831660808301529695505050505050565b6040815260006154ca6040830185614c8e565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7fffffffff000000000000000000000000000000000000000000000000000000008416815260606020820152600061552a6060830185614c8e565b828103604084015261553c8185614c8e565b9695505050505050565b60006020828403121561555857600080fd5b5051919050565b6000806000806080858703121561557557600080fd5b845161558081614e52565b60208601516040870151919550935061559881614e52565b60608601519092506150c181614e52565b600082516155bb818460208701614c6a565b9190910192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808201808211156132d8576132d86155c5565b600082601f83011261561857600080fd5b61339683835160208501615126565b60006020828403121561563957600080fd5b815167ffffffffffffffff8082111561565157600080fd5b90830190610120828603121561566657600080fd5b61566e614d43565b8251815261567e60208401615303565b602082015260408301516040820152606083015160608201526080830151828111156156a957600080fd5b6156b587828601615607565b60808301525060a083015160a08201526156d160c08401615303565b60c082015260e083810151908201526101009283015192810192909252509392505050565b600061010080838503121561570a57600080fd5b6040519081019067ffffffffffffffff8211818310171561572d5761572d614ceb565b81604052835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c082015260e084015160e0820152809250505092915050565b80820281158282048414176132d8576132d86155c5565b6000826157d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8281526040602082015260006151016040830184614c8e565b6080815260006158046080830187614c8e565b73ffffffffffffffffffffffffffffffffffffffff95909516602083015250604081019290925260ff1660609091015291905056fe50726f74656374696f6e2e557365722e49642e50726f74656374696f6e55706461746573416464726573732e436f6e74726163742e546f6b656e2e5374616b696e6752656365697074416464726573732e557365722e4c656e6465724e616d652e4c6f616e49642e426c75657072696e74416464726573732e4d6f6e65794d61726b65744e616d652e426c75657072696e74416464726573732e436f6e7472616374732e5661756c742e53747265616d5661756c74416464726573732e436f6e74726163742e54726561737572792e526577617264735472656173757279416374696f6e2e4e616d652e55736572496d706c656d656e746174696f6e2e43616c6c657250726f74656374696f6e2e557365722e49642e50726f74656374696f6e46696e616e6369616c5465726d73546f6b656e2e4c656e6465724e616d652e436f6c6c61746572616c2e417070726f766564","sourceMap":"768:16035:85:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:93:107;;;:::i;:::-;;;160:25:249;;;148:2;133:18;905:93:107;;;;;;;;4313:101:137;;;:::i;:::-;;;;;;;:::i;3382:80::-;;;;;;;;;;;;;;;;;;;;;812:87:107;;;:::i;5217:1274:85:-;;;;;;:::i;:::-;;:::i;:::-;;560:76:137;;;;;;;;;;;;;;;;;;;;;6801:1709:85;;;;;;:::i;:::-;;:::i;1119:106:107:-;;;:::i;3124:78:137:-;;;;;;;;;;;;;;;;;;;;;3825:74;;;;;;;;;;;;;;;;;;;;;477:107:107;;;:::i;1749:93:137:-;;;;;;;;;;;;;;;;;;;;;1935:72;;;;;;;;;;;;;;;;;;;;;2407:70;;;;;;;;;;;;;;;;;;;;;278:76;;;;;;;;;;;;;;;;;;;;;2700:77;;;;;;;;;;;;;;;;;;;;;1171:1473:85;;;;;;:::i;:::-;;:::i;1848:81:137:-;;;;;;;;;;;;;;;;;;;;;374:97:107;;;:::i;3637:88:137:-;;;:::i;2314:87::-;;;;;;;;;;;;;;;;;;;;;3468:88;;;;;;;;;;;;;;;;;;;;;1068:85;;;;;;;;;;;;;;;;;;;;;1275:75;;;;;;;;;;;;;;;;;;;;;142:62;;;;;;;;;;;;;;;;;;;;;898:83;;;;;;;;;;;;;;;;;;;;;2947:87;;;:::i;3040:78::-;;;;;;;;;;;;;;;;;;;;;3932:58;;;;;;;;;;;;;;;;;;;;;1662:81;;;;;;;;;;;;;;;;;;;;;4138:68;;;;;;;;;;;;;;;;;;;;;2208:71;;;;;;;;;;;;;;;;;;;;;987:75;;;;;;;;;;;;;;;;;;;;;745:66;;;;;;;;;;;;;;;;;;;;;12611:612:85;;;;;;:::i;:::-;;:::i;8847:745::-;;;;;;:::i;:::-;;:::i;3208:76:137:-;;;;;;;;;;;;;;;;;;;;;703:103:107;;;:::i;273:95::-;;;:::i;1000:637:139:-;;;;;;:::i;:::-;;:::i;:::-;;;6974:14:249;;6967:22;6949:41;;6937:2;6922:18;1000:637:139;6809:187:249;210:62:137;;;;;;;;;;;;;;;;;;;;;176:91:107;;;:::i;817:75:137:-;;;;;;;;;;;;;;;;;;;;;3731:88;;;:::i;2585:109::-;;;:::i;3996:60::-;;;;;;;;;;;;;;;;;;;;;1523:105;;;:::i;4616:78::-;;;;;;;;;;;;;;;;;;;;;1189:80;;;;;;;;;;;;;;;;;;;;;2097:72;;;;;;;;;;;;;;;;;;;;;2483:96;;;:::i;4478:::-;;;:::i;4062:70::-;;;;;;;;;;;;;;;;;;;;;360:80;;;;;;;;;;;;;;;;;;;;;590:107:107;;;:::i;2783:70:137:-;;;;;;;;;;;;;;;;;;;;;1452:65;;;;;;;;;;;;;;;;;;;;;642:73;;;;;;;;;;;;;;;;;;;;;3562:69;;;;;;;;;;;;;;;;;;;;;1231:87:107;;;:::i;2859:82:137:-;;;;;;;;;;;;;;;;;;;;;2013:78;;;;;;;;;;;;;;;;;;;;;1356:90;;;:::i;489:65::-;;;;;;;;;;;;;;;;;;;;;4212:69;;;;;;;;;;;;;;;;;;;;;822:172:139;;;;;;:::i;:::-;;:::i;:::-;;;7503:42:249;7491:55;;;7473:74;;7461:2;7446:18;822:172:139;7327:226:249;905:93:107;966:29;;7772:11:249;966:29:107;;;7760:24:249;7800:11;;966:29:107;;;;;;;;;;;;;956:40;;;;;;941:57;;;905:93;:::o;4313:101:137:-;;;;;;;;;;;;;;;;;;;:::o;812:87:107:-;870:26;;8036:8:249;870:26:107;;;8024:21:249;8061:11;;870:26:107;7822:256:249;5217:1274:85;1073:37:107;;8297:19:249;1073:37:107;;;8285:32:249;8333:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8570:10:249;8558:23;;8606:1;8597:11;;8356:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;8793:25:249;;;795:10:108;8834:18:249;;;8827:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;8766:18:249;;777:29:108;;;;;;;;;;;;;742:9;:65::i;:::-;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9373:2:249;817:84:108;;;9355:21:249;9412:2;9392:18;;;9385:30;9451:34;9431:18;;;9424:62;9522:3;9502:18;;;9495:31;9543:19;;817:84:108;;;;;;;;;5451:21:85::1;5475:61;5485:18;;;;;;;;;;;;;;;;::::0;5516:9:::1;5527:7;5505:30;;;;;;;;9777:42:249::0;9765:55;;;;9747:74;;9852:2;9837:18;;9830:34;9735:2;9720:18;;9573:297;5475:61:85::1;5576:39;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;5451:85:85;;-1:-1:-1;5546:27:85::1;::::0;5576:24:::1;:15;:24;::::0;::::1;::::0;133:18:249;;5576:39:85::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;5546:69;;5733:9;5631:134;;5680:51;5699:9;5710:11;5723:7;5680:18;:51::i;:::-;5631:134;;;5667:11;5744;5631:134;;;;;;;:::i;:::-;;;;;;;;5836:21:::0;;:25;5832:255:::1;;5877:40;5931:14;5920:52;;;;;;;;;;;;:::i;:::-;5877:95;;5990:10;:17;;;5986:91;;;6027:35;::::0;::::1;::::0;;12048:2:249;6027:35:85::1;::::0;::::1;12030:21:249::0;12087:2;12067:18;;;12060:30;12126:27;12106:18;;;12099:55;12171:18;;6027:35:85::1;11846:349:249::0;5986:91:85::1;5863:224;5832:255;6096:23;6204:11;6229:6;6257:51;6276:9;6287:11;6300:7;6257:18;:51::i;:::-;6122:197;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;;;;::::0;;6344:76;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;6122:197;;-1:-1:-1;;;6344:76:85::1;::::0;-1:-1:-1;6122:197:85;-1:-1:-1;6344:24:85::1;:76::i;:::-;6329:91;;6438:7;6430:54;;;::::0;::::1;::::0;;12816:2:249;6430:54:85::1;::::0;::::1;12798:21:249::0;12855:2;12835:18;;;12828:30;12894:34;12874:18;;;12867:62;12965:4;12945:18;;;12938:32;12987:19;;6430:54:85::1;12614:398:249::0;6430:54:85::1;5441:1050;;;;632:287:108::0;;5217:1274:85;;;;;;:::o;6801:1709::-;1073:37:107;;8297:19:249;1073:37:107;;;8285:32:249;8333:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8570:10:249;8558:23;;8606:1;8597:11;;8356:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;8793:25:249;;;795:10:108;8834:18:249;;;8827:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;8766:18:249;;777:29:108;8619:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9373:2:249;817:84:108;;;9355:21:249;9412:2;9392:18;;;9385:30;9451:34;9431:18;;;9424:62;9522:3;9502:18;;;9495:31;9543:19;;817:84:108;9171:397:249;817:84:108;7036:17:85::1;7056:12:::0;7083:10:::1;7072:60;;;;;;;;;;;;:::i;:::-;7033:99;;;;;;7143:21;7167:61;7177:18;;;;;;;;;;;;;;;;::::0;7208:9:::1;7219:7;7197:30;;;;;;;;9777:42:249::0;9765:55;;;;9747:74;;9852:2;9837:18;;9830:34;9735:2;9720:18;;9573:297;7167:61:85::1;7268:39;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;7143:85:85;;-1:-1:-1;7238:27:85::1;::::0;7268:24:::1;:15;:24;::::0;::::1;::::0;133:18:249;;7268:39:85::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;7238:69;;7423:9;7322:132;;7370:51;7389:9;7400:11;7413:7;7370:18;:51::i;:::-;7322:132;;;7357:11;7434:10;7322:132;;;;;;;:::i;:::-;;;;;;;;7525:21:::0;;:25;7521:256:::1;;7566:40;7620:14;7609:52;;;;;;;;;;;;:::i;:::-;7566:95;;7679:10;:17;;;7675:92;;;7716:36;7733:9;7744:7;7716:16;:36::i;:::-;7552:225;7521:256;7806:9:::0;7847:13:::1;::::0;::::1;;7869:51;7888:9:::0;7899:11;7912:7;7869:18:::1;:51::i;:::-;7847:81;::::0;;::::1;::::0;;;;;;9777:42:249;9765:55;;;7847:81:85::1;::::0;::::1;9747:74:249::0;9837:18;;;9830:34;;;9720:18;;7847:81:85::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7826:138;;;::::0;::::1;::::0;;13748:2:249;7826:138:85::1;::::0;::::1;13730:21:249::0;13787:2;13767:18;;;13760:30;13826:24;13806:18;;;13799:52;13868:18;;7826:138:85::1;13546:346:249::0;7826:138:85::1;7995:5;:14;;;8018:51;8037:9;8048:11;8061:7;8018:18;:51::i;:::-;7995:82;::::0;;::::1;::::0;;;;;;9777:42:249;9765:55;;;7995:82:85::1;::::0;::::1;9747:74:249::0;9837:18;;;9830:34;;;9720:18;;7995:82:85::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7974:137;;;::::0;::::1;::::0;;14099:2:249;7974:137:85::1;::::0;::::1;14081:21:249::0;14138:2;14118:18;;;14111:30;14177:22;14157:18;;;14150:50;14217:18;;7974:137:85::1;13897:344:249::0;7974:137:85::1;8121:22;8227:10;8251:6;8279:51;8298:9;8309:11;8322:7;8279:18;:51::i;:::-;8146:195;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;;;;::::0;;8366:74;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;8146:195;;-1:-1:-1;;;8366:74:85::1;::::0;-1:-1:-1;8146:195:85;-1:-1:-1;8366:24:85::1;:74::i;:::-;8351:89;;8458:7;8450:53;;;::::0;::::1;::::0;;14448:2:249;8450:53:85::1;::::0;::::1;14430:21:249::0;14487:2;14467:18;;;14460:30;14526:34;14506:18;;;14499:62;14597:3;14577:18;;;14570:31;14618:19;;8450:53:85::1;14246:397:249::0;8450:53:85::1;7023:1487;;;;;;;632:287:108::0;;6801:1709:85;;;;;;:::o;1119:106:107:-;1185:37;;8297:19:249;1185:37:107;;;8285:32:249;8333:12;;1185:37:107;8083:268:249;477:107:107;545:36;;14862:18:249;545:36:107;;;14850:31:249;14897:12;;545:36:107;14648:267:249;1171:1473:85;1073:37:107;;8297:19:249;1073:37:107;;;8285:32:249;8333:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8570:10:249;8558:23;;8606:1;8597:11;;8356:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;8793:25:249;;;795:10:108;8834:18:249;;;8827:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;8766:18:249;;777:29:108;8619:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9373:2:249;817:84:108;;;9355:21:249;9412:2;9392:18;;;9385:30;9451:34;9431:18;;;9424:62;9522:3;9502:18;;;9495:31;9543:19;;817:84:108;9171:397:249;817:84:108;1413:11:85::1;1427:98;1437:41;;;;;;;;;;;;;;;;;1491:9;1502:11;1515:8;1480:44;;;;;;;;;;:::i;1427:98::-;1558:31;::::0;;;;::::1;::::0;::::1;160:25:249::0;;;1413:112:85;;-1:-1:-1;1535:20:85::1;::::0;1558:26:::1;:15;:26;::::0;::::1;::::0;133:18:249;;1558:31:85::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1535:54:::0;-1:-1:-1;1603:28:85::1;::::0;::::1;1599:968;;1788:28;1835:15;:26;;;1862:61;;;;;;;;;;;;;;;;;::::0;1910:11:::1;1899:23;;;;;;;;:::i;1862:61::-;1835:89;;;;;;;;;;;;;160:25:249::0;;148:2;133:18;;14:177;1835:89:85::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1962:72;::::0;7503:42:249;2017:15:85::1;7491:55:249::0;1962:72:85::1;::::0;::::1;7473:74:249::0;1788:136:85;;-1:-1:-1;1938:21:85::1;::::0;7446:18:249;;1962:72:85::1;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;;;::::0;;2081:308;1962:72;;-1:-1:-1;;;2081:308:85::1;::::0;2205:20;;2243:11;;2292:9;;2319:4:::1;::::0;1962:72;;2367:8;;2081:308:::1;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;;;;::::0;;2418:88;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;2081:308;;-1:-1:-1;;;2418:88:85::1;::::0;2460:6;2081:308;-1:-1:-1;2418:24:85::1;:88::i;:::-;2403:103;;2528:7;2520:36;;;::::0;::::1;::::0;;16906:2:249;2520:36:85::1;::::0;::::1;16888:21:249::0;16945:2;16925:18;;;16918:30;16984:18;16964;;;16957:46;17020:18;;2520:36:85::1;16704:340:249::0;2520:36:85::1;1633:934;;;;1599:968;2577:60;2592:10;2604:9;2615:11;2628:8;2577:14;:60::i;:::-;1403:1241;;632:287:108::0;;1171:1473:85;;;;;;:::o;374:97:107:-;435:33;;17263:15:249;435:33:107;;;17251:28:249;17295:12;;435:33:107;17049:264:249;3637:88:137;;;;;;;;;;;;;;;;;;;:::o;2947:87::-;;;;;;;;;;;;;;;;;;;:::o;12611:612:85:-;1073:37:107;;8297:19:249;1073:37:107;;;8285:32:249;8333:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8570:10:249;8558:23;;8606:1;8597:11;;8356:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;8793:25:249;;;795:10:108;8834:18:249;;;8827:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;8766:18:249;;777:29:108;8619:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9373:2:249;817:84:108;;;9355:21:249;9412:2;9392:18;;;9385:30;9451:34;9431:18;;;9424:62;9522:3;9502:18;;;9495:31;9543:19;;817:84:108;9171:397:249;817:84:108;12804:51:85::1;12948:7;12957:11;12970:6;12870:107;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;;;;::::0;;13002:143;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;12870:107;;-1:-1:-1;;;13002:143:85::1;::::0;-1:-1:-1;12870:107:85;-1:-1:-1;13002:24:85::1;:143::i;:::-;12987:158;;13163:7;13155:61;;;::::0;::::1;::::0;;17946:2:249;13155:61:85::1;::::0;::::1;17928:21:249::0;17985:2;17965:18;;;17958:30;18024:34;18004:18;;;17997:62;18095:11;18075:18;;;18068:39;18124:19;;13155:61:85::1;17744:405:249::0;13155:61:85::1;12794:429;;632:287:108::0;;12611:612:85;;;;:::o;8847:745::-;1073:37:107;;8297:19:249;1073:37:107;;;8285:32:249;8333:12;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8570:10:249;8558:23;;8606:1;8597:11;;8356:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;8793:25:249;;;795:10:108;8834:18:249;;;8827:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;8766:18:249;;777:29:108;8619:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9373:2:249;817:84:108;;;9355:21:249;9412:2;9392:18;;;9385:30;9451:34;9431:18;;;9424:62;9522:3;9502:18;;;9495:31;9543:19;;817:84:108;9171:397:249;817:84:108;9170:9:85::1;9066:138;;9117:51;9136:9;9147:11;9160:7;9117:18;:51::i;:::-;9066:138;;;9104:11;9181:13;9066:138;;;;;;;:::i;:::-;;;;;;;;9214:20;9321:13;9348:1;9371:51;9390:9;9401:11;9414:7;9371:18;:51::i;:::-;9237:196;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;;::::1;::::0;;::::1;;;;::::0;;9458:81;;;;::::1;::::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;9237:196;;-1:-1:-1;;;9458:81:85::1;::::0;-1:-1:-1;9237:196:85;-1:-1:-1;9458:24:85::1;:81::i;:::-;9443:96;;9557:7;9549:36;;;::::0;::::1;::::0;;16906:2:249;9549:36:85::1;::::0;::::1;16888:21:249::0;16945:2;16925:18;;;16918:30;16984:18;16964;;;16957:46;17020:18;;9549:36:85::1;16704:340:249::0;9549:36:85::1;9051:541;;632:287:108::0;;8847:745:85;;;;;:::o;703:103:107:-;769:34;;18799:16:249;769:34:107;;;18787:29:249;18832:12;;769:34:107;18585:265:249;273:95:107;335:30;;19069:12:249;335:30:107;;;19057:25:249;19098:12;;335:30:107;18855:261:249;1000:637:139;1073:37:107;;8297:19:249;1073:37:107;;;8285:32:249;1230:12:139;;8333::249;;1073:37:107;;;;;;;;;;;;1063:48;;;;;;1048:65;;;642:16:108;678:28;;;;;;8570:10:249;8558:23;;8606:1;8597:11;;8356:258;678:28:108;;;;;;;;;;;;;;668:39;;678:28;668:39;;;;752:23;;;;;;;;;;;;;777:29;;;;;8793:25:249;;;795:10:108;8834:18:249;;;8827:83;;;;668:39:108;;-1:-1:-1;718:21:108;;742:65;;8766:18:249;;777:29:108;8619:297:249;742:65:108;825:38;;;;;;;;160:25:249;;;718:89:108;;-1:-1:-1;825:15:108;:23;;;;;133:18:249;;825:38:108;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;817:84;;;;;;;9373:2:249;817:84:108;;;9355:21:249;9412:2;9392:18;;;9385:30;9451:34;9431:18;;;9424:62;9522:3;9502:18;;;9495:31;9543:19;;817:84:108;9171:397:249;817:84:108;1258:24:139::1;1398:11;1431:4;1450:6;1470:5;1495:10;1489:17;;;;;;;;:::i;:::-;1285:231;;;;;;;;;;;;:::i;:::-;;::::0;;;;;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;;::::1;;;;::::0;;;-1:-1:-1;1536:94:139::1;1552:20;-1:-1:-1::0;1285:231:139;-1:-1:-1;1612:17:139::1;1536:7;:94::i;:::-;1526:104:::0;1000:637;-1:-1:-1;;;;;;;;;1000:637:139:o;176:91:107:-;236:28;;8570:10:249;236:28:107;;;8558:23:249;8597:11;;236:28:107;8356:258:249;3731:88:137;;;;;;;;;;;;;;;;;;;:::o;2585:109::-;;;;;;;;;;;;;;;;;;;:::o;1523:105::-;;;;;;;;;;;;;;;;;;;:::o;2483:96::-;;;;;;;;;;;;;;;;;;;:::o;4478:::-;;;;;;;;;;;;;;;;;;;:::o;590:107:107:-;658:36;;20182:18:249;658:36:107;;;20170:31:249;20217:12;;658:36:107;19968:267:249;1231:87:107;1289:26;;20454:8:249;1289:26:107;;;20442:21:249;20479:11;;1289:26:107;20240:256:249;1356:90:137;;;;;;;;;;;;;;;;;;;:::o;822:172:139:-;922:65;;;;;896:7;;922:37;:20;:37;;;;:65;;960:11;;981:4;;922:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;915:72;822:172;-1:-1:-1;;822:172:139:o;1180:170:138:-;1292:51;;;;;1266:7;;1292:13;;:23;;:51;;1316:9;;1327:8;;1337:5;;1292:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1285:58;1180:170;-1:-1:-1;;;1180:170:138:o;16315:486:85:-;16478:21;16515:11;16529:93;16539:41;;;;;;;;;;;;;;;;;16593:5;16600:11;16613:7;16582:39;;;;;;;;;;:::i;16529:93::-;16649:31;;;;;;;;160:25:249;;;16515:107:85;;-1:-1:-1;16649:15:85;:26;;;;;133:18:249;;16649:31:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16633:47;-1:-1:-1;16698:27:85;;;16690:73;;;;;;;21773:2:249;16690:73:85;;;21755:21:249;21812:2;21792:18;;;21785:30;21851:34;21831:18;;;21824:62;21922:3;21902:18;;;21895:31;21943:19;;16690:73:85;21571:397:249;16690:73:85;16774:20;16315:486;;;;;:::o;9744:488::-;9820:12;9835:39;9859:7;9868:5;9835:23;:39::i;:::-;9820:54;-1:-1:-1;9888:8:85;;9884:342;;9912:13;9928:29;9942:5;9949:7;9928:13;:29::i;:::-;:47;;;9912:63;;9989:11;10003:38;10022:4;10028:5;10035;10003:18;:38::i;:::-;9989:52;;10063:6;10055:45;;;;;;;22175:2:249;10055:45:85;;;22157:21:249;22214:2;22194:18;;;22187:30;22253:28;22233:18;;;22226:56;22299:18;;10055:45:85;21973:350:249;10055:45:85;10114:35;10134:5;10141:7;10114:19;:35::i;:::-;9898:262;;9810:422;9744:488;;:::o;9884:342::-;10180:35;10200:5;10207:7;10180:19;:35::i;:::-;9810:422;9744:488;;:::o;3013:1853::-;3195:23;3220:14;3251:11;3240:61;;;;;;;;;;;;:::i;:::-;3194:107;;;;;;3311:11;3325:90;3335:37;;;;;;;;;;;;;;;;;3385:11;3398:15;3374:40;;;;;;;;;:::i;3325:90::-;3433:28;;;;;;;;160:25:249;;;3311:104:85;;-1:-1:-1;3433:15:85;:23;;;;;133:18:249;;3433:28:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3425:77;;;;;;;23140:2:249;3425:77:85;;;23122:21:249;23179:2;23159:18;;;23152:30;23218:34;23198:18;;;23191:62;23289:6;23269:18;;;23262:34;23313:19;;3425:77:85;22938:400:249;3425:77:85;3513:21;3537:61;3547:18;;;;;;;;;;;;;;;;;3578:9;3589:7;3567:30;;;;;;;;9777:42:249;9765:55;;;;9747:74;;9852:2;9837:18;;9830:34;9735:2;9720:18;;9573:297;3537:61:85;3638:39;;;;;;;;160:25:249;;;3513:85:85;;-1:-1:-1;3608:27:85;;3638:24;:15;:24;;;;133:18:249;;3638:39:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3608:69;;3728:51;3747:9;3758:11;3771:7;3728:18;:51::i;:::-;3692:101;;3715:11;3692:101;;;;;;:::i;:::-;;;;;;;;;3781:11;3692:101;;;;;;:::i;:::-;;;;;;;;3865:21;;:25;3861:255;;3906:40;3960:14;3949:52;;;;;;;;;;;;:::i;:::-;3906:95;;4019:10;:17;;;4015:91;;;4056:35;;;;;12048:2:249;4056:35:85;;;12030:21:249;12087:2;12067:18;;;12060:30;12126:27;12106:18;;;12099:55;12171:18;;4056:35:85;11846:349:249;4015:91:85;3892:224;3861:255;4145:15;4192:13;;;;4214:51;4233:9;4244:11;4257:7;4214:18;:51::i;:::-;4192:83;;;;;;;;;;9777:42:249;9765:55;;;4192:83:85;;;9747:74:249;9837:18;;;9830:34;;;9720:18;;4192:83:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4171:152;;;;;;;13748:2:249;4171:152:85;;;13730:21:249;13787:2;13767:18;;;13760:30;13826:24;13806:18;;;13799:52;13868:18;;4171:152:85;13546:346:249;4171:152:85;4354:5;:14;;;4377:51;4396:9;4407:11;4420:7;4377:18;:51::i;:::-;4354:84;;;;;;;;;;9777:42:249;9765:55;;;4354:84:85;;;9747:74:249;9837:18;;;9830:34;;;9720:18;;4354:84:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4333:139;;;;;;;14099:2:249;4333:139:85;;;14081:21:249;14138:2;14118:18;;;14111:30;14177:22;14157:18;;;14150:50;14217:18;;4333:139:85;13897:344:249;4333:139:85;4482:20;4587:11;4612:1;4635:51;4654:9;4665:11;4678:7;4635:18;:51::i;:::-;4505:192;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;4722:73;;;;;;;;;;;;;;;;4505:192;;-1:-1:-1;;;4722:73:85;;-1:-1:-1;4505:192:85;-1:-1:-1;4722:24:85;:73::i;:::-;4707:88;;4813:7;4805:54;;;;;;;24062:2:249;4805:54:85;;;24044:21:249;24101:2;24081:18;;;24074:30;24140:34;24120:18;;;24113:62;24211:4;24191:18;;;24184:32;24233:19;;4805:54:85;23860:398:249;519:822:101;708:12;;757:10;:33;;;;;;;;:::i;:::-;;:78;;;-1:-1:-1;808:27:101;794:10;:41;;;;;;;;:::i;:::-;;757:78;736:152;;;;;;;24465:2:249;736:152:101;;;24447:21:249;24504:2;24484:18;;;24477:30;24543:29;24523:18;;;24516:57;24590:18;;736:152:101;24263:351:249;736:152:101;916:27;902:10;:41;;;;;;;;:::i;:::-;;898:437;;1111:1;1108;1100:5;1094:12;1087:4;1080:5;1076:16;1071:3;1063:6;1050:63;1039:74;;898:437;;;1309:1;1306;1298:5;1292:12;1285:4;1278:5;1274:16;1266:6;1261:3;1253:6;1248:63;1237:74;;898:437;519:822;;;;;;;:::o;13387:915:85:-;13474:7;13493:40;13536:33;13554:5;13561:7;13536:17;:33::i;:::-;13493:76;;13579:59;13641:43;13669:5;13676:7;13641:27;:43::i;:::-;13579:105;;13694:17;13726:16;13745:134;13807:15;:34;;;13843:10;:26;;;13745:48;:134::i;:::-;13726:153;-1:-1:-1;13889:21:85;13726:153;13889:21;;:::i;:::-;;;13924:15;:32;;;13960:1;13924:37;13920:110;;13990:29;;;;13977:42;;;;:::i;:::-;;;13920:110;14043:15;:32;;;14079:1;14043:37;14039:110;;14109:29;;;;14096:42;;;;:::i;:::-;;;14039:110;14162:15;:34;;;14200:1;14162:39;14158:111;;-1:-1:-1;;14224:34:85;;-1:-1:-1;14217:41:85;;-1:-1:-1;14217:41:85;14158:111;-1:-1:-1;14286:9:85;13387:915;-1:-1:-1;;;;;13387:915:85:o;15034:344::-;15111:27;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15111:27:85;15150:11;15164:67;15174:28;;;;;;;;;;;;;;;;;15215:5;15222:7;15204:26;;;;;;;;9777:42:249;9765:55;;;;9747:74;;9852:2;9837:18;;9830:34;9735:2;9720:18;;9573:297;15164:67:85;15273:29;;;;;;;;160:25:249;;;15150:81:85;;-1:-1:-1;15241:29:85;;15273:24;:15;:24;;;;133:18:249;;15273:29:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15241:61;;15330:16;15319:52;;;;;;;;;;;;:::i;11643:920::-;11759:29;;;;;;;;160:25:249;;;11735:12:85;;11759:8;;:21;;133:18:249;;11759:29:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11798:22;11823:52;11833:24;;;;;;;;;;;;;;;;;11859:15;;;;;;26689:2:249;26671:21;;;26728:1;26708:18;;;26701:29;26766:3;26761:2;26746:18;;26739:31;26802:2;26787:18;;26487:324;11823:52:85;11914:42;;;;;;;;160:25:249;;;11798:77:85;;-1:-1:-1;11885:26:85;;11914;:15;:26;;;;133:18:249;;11914:42:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11885:71;;11966:35;12012:18;11966:65;;12104:19;12047:77;;12097:5;12047:77;;12089:6;12047:77;;;12081:6;12047:77;;;;160:25:249;;148:2;133:18;;14:177;12047:77:85;;;;;;;;12162:204;;27255:42:249;27324:15;;;12162:204:85;;;27306:34:249;27376:15;;27356:18;;;27349:43;12331:4:85;27408:18:249;;;27401:43;27460:18;;;27453:34;;;12134:25:85;;27217:19:249;;12162:204:85;;;;;;;;;;;;;;;;;;;;;;;;;12386:85;;;;;;;;;;;;;;;;12162:204;;-1:-1:-1;12386:85:85;;-1:-1:-1;12162:204:85;-1:-1:-1;12386:24:85;:85::i;:::-;12376:95;;12489:7;12481:51;;;;;;;27700:2:249;12481:51:85;;;27682:21:249;27739:2;27719:18;;;27712:30;27778:33;27758:18;;;27751:61;27829:18;;12481:51:85;27498:355:249;12481:51:85;12542:14;;;;11643:920;;;;;:::o;10294:364::-;10373:31;;;;;7503:42:249;7491:55;;10373:31:85;;;7473:74:249;10373:8:85;;:24;;7446:18:249;;10373:31:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10414:30:85;;;;;;;;160:25:249;;;10414:8:85;;-1:-1:-1;10414:21:85;;-1:-1:-1;133:18:249;;10414:30:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10454:24;10481:73;10491:34;;;;;;;;;;;;;;;;;10527:26;;;9777:42:249;9765:55;;10527:26:85;;;9747:74:249;9837:18;;;9830:34;;;9720:18;;10527:26:85;9573:297:249;10481:73:85;10564:45;;;;;;;;160:25:249;;;10454:100:85;;-1:-1:-1;10564:15:85;:27;;;;;133:18:249;;10564:45:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10619:32;10636:5;10643:7;10619:16;:32::i;14471:338::-;14552:29;;:::i;:::-;14593:11;14607:57;14617:18;;;;;;;;;;;;;;;;;14648:5;14655:7;14637:26;;;;;;;;9777:42:249;9765:55;;;;9747:74;;9852:2;9837:18;;9830:34;9735:2;9720:18;;9573:297;14607:57:85;14704:29;;;;;;;;160:25:249;;;14593:71:85;;-1:-1:-1;14674:27:85;;14704:24;:15;:24;;;;133:18:249;;14704:29:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14674:59;;14761:14;14750:52;;;;;;;;;;;;:::i;15603:430::-;15740:43;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15740:43:85;15799:11;15813:73;15823:34;;;;;;;;;;;;;;;;;15859:26;;;9777:42:249;9765:55;;15859:26:85;;;9747:74:249;9837:18;;;9830:34;;;9720:18;;15859:26:85;9573:297:249;15813:73:85;15920:29;;;;;;;;160:25:249;;;15799:87:85;;-1:-1:-1;15896:21:85;;15920:24;:15;:24;;;;133:18:249;;15920:29:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15896:53;;15977:8;15966:60;;;;;;;;;;;;:::i;295:242:158:-;385:22;496:3;475:17;488:4;475:10;:17;:::i;:::-;474:25;;;;:::i;10706:753:85:-;10782:31;;;;;7503:42:249;7491:55;;10782:31:85;;;7473:74:249;10782:8:85;;:24;;7446:18:249;;10782:31:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10823:30:85;;;;;;;;160:25:249;;;10823:8:85;;-1:-1:-1;10823:21:85;;-1:-1:-1;133:18:249;;10823:30:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10899:30:85;;;10910:15;10899:30;;;29637:25:249;10863:33:85;29678:18:249;;;29671:45;10899:30:85;;;;;;;;;29610:18:249;;;;10899:30:85;;;;;-1:-1:-1;10944:72:85;;;;-1:-1:-1;10944:72:85;;;;10986:7;;10899:30;;10944:72;:::i;:::-;;;;;;;;11027:27;11155:20;11189:5;11208:7;11235:27;11057:216;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;11298:90;;;;;;;;;;;;;;;;11057:216;;-1:-1:-1;;;11298:90:85;;-1:-1:-1;11057:216:85;-1:-1:-1;11298:24:85;:90::i;:::-;11283:105;;11406:7;11398:54;;;;;;;30717:2:249;11398:54:85;;;30699:21:249;30756:2;30736:18;;;30729:30;30795:34;30775:18;;;30768:62;30866:4;30846:18;;;30839:32;30888:19;;11398:54:85;30515:398:249;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;196:250:249:-;281:1;291:113;305:6;302:1;299:13;291:113;;;381:11;;;375:18;362:11;;;355:39;327:2;320:10;291:113;;;-1:-1:-1;;438:1:249;420:16;;413:27;196:250::o;451:330::-;493:3;531:5;525:12;558:6;553:3;546:19;574:76;643:6;636:4;631:3;627:14;620:4;613:5;609:16;574:76;:::i;:::-;695:2;683:15;700:66;679:88;670:98;;;;770:4;666:109;;451:330;-1:-1:-1;;451:330:249:o;786:220::-;935:2;924:9;917:21;898:4;955:45;996:2;985:9;981:18;973:6;955:45;:::i;1011:184::-;1063:77;1060:1;1053:88;1160:4;1157:1;1150:15;1184:4;1181:1;1174:15;1200:252;1272:2;1266:9;1314:3;1302:16;;1348:18;1333:34;;1369:22;;;1330:62;1327:88;;;1395:18;;:::i;:::-;1431:2;1424:22;1200:252;:::o;1457:255::-;1529:2;1523:9;1571:6;1559:19;;1608:18;1593:34;;1629:22;;;1590:62;1587:88;;;1655:18;;:::i;1717:334::-;1788:2;1782:9;1844:2;1834:13;;1849:66;1830:86;1818:99;;1947:18;1932:34;;1968:22;;;1929:62;1926:88;;;1994:18;;:::i;:::-;2030:2;2023:22;1717:334;;-1:-1:-1;1717:334:249:o;2056:245::-;2104:4;2137:18;2129:6;2126:30;2123:56;;;2159:18;;:::i;:::-;-1:-1:-1;2216:2:249;2204:15;2221:66;2200:88;2290:4;2196:99;;2056:245::o;2306:462::-;2348:5;2401:3;2394:4;2386:6;2382:17;2378:27;2368:55;;2419:1;2416;2409:12;2368:55;2455:6;2442:20;2486:48;2502:31;2530:2;2502:31;:::i;:::-;2486:48;:::i;:::-;2559:2;2550:7;2543:19;2605:3;2598:4;2593:2;2585:6;2581:15;2577:26;2574:35;2571:55;;;2622:1;2619;2612:12;2571:55;2687:2;2680:4;2672:6;2668:17;2661:4;2652:7;2648:18;2635:55;2735:1;2710:16;;;2728:4;2706:27;2699:38;;;;2714:7;2306:462;-1:-1:-1;;;2306:462:249:o;2773:154::-;2859:42;2852:5;2848:54;2841:5;2838:65;2828:93;;2917:1;2914;2907:12;2828:93;2773:154;:::o;2932:813::-;3046:6;3054;3062;3070;3078;3131:3;3119:9;3110:7;3106:23;3102:33;3099:53;;;3148:1;3145;3138:12;3099:53;3188:9;3175:23;3217:18;3258:2;3250:6;3247:14;3244:34;;;3274:1;3271;3264:12;3244:34;3297:49;3338:7;3329:6;3318:9;3314:22;3297:49;:::i;:::-;3287:59;;3393:2;3382:9;3378:18;3365:32;3355:42;;3447:2;3436:9;3432:18;3419:32;3406:45;;3460:31;3485:5;3460:31;:::i;:::-;3510:5;;-1:-1:-1;3568:2:249;3553:18;;3540:32;;3584:16;;;3581:36;;;3613:1;3610;3603:12;3581:36;;3636:51;3679:7;3668:8;3657:9;3653:24;3636:51;:::i;:::-;2932:813;;;;-1:-1:-1;2932:813:249;;3734:3;3719:19;3706:33;;2932:813;-1:-1:-1;;;2932:813:249:o;3750:::-;3864:6;3872;3880;3888;3896;3949:3;3937:9;3928:7;3924:23;3920:33;3917:53;;;3966:1;3963;3956:12;3917:53;4002:9;3989:23;3979:33;;4063:2;4052:9;4048:18;4035:32;4086:18;4127:2;4119:6;4116:14;4113:34;;;4143:1;4140;4133:12;4113:34;4166:49;4207:7;4198:6;4187:9;4183:22;4166:49;:::i;:::-;4156:59;;4265:2;4254:9;4250:18;4237:32;4224:45;;4278:31;4303:5;4278:31;:::i;4568:118::-;4654:5;4647:13;4640:21;4633:5;4630:32;4620:60;;4676:1;4673;4666:12;4691:591;4775:6;4783;4791;4844:2;4832:9;4823:7;4819:23;4815:32;4812:52;;;4860:1;4857;4850:12;4812:52;4900:9;4887:23;4933:18;4925:6;4922:30;4919:50;;;4965:1;4962;4955:12;4919:50;4988:49;5029:7;5020:6;5009:9;5005:22;4988:49;:::i;:::-;4978:59;;;5087:2;5076:9;5072:18;5059:32;5100:31;5125:5;5100:31;:::i;:::-;5150:5;-1:-1:-1;5207:2:249;5192:18;;5179:32;5220:30;5179:32;5220:30;:::i;:::-;5269:7;5259:17;;;4691:591;;;;;:::o;5287:744::-;5392:6;5400;5408;5416;5469:3;5457:9;5448:7;5444:23;5440:33;5437:53;;;5486:1;5483;5476:12;5437:53;5526:9;5513:23;5555:18;5596:2;5588:6;5585:14;5582:34;;;5612:1;5609;5602:12;5582:34;5635:49;5676:7;5667:6;5656:9;5652:22;5635:49;:::i;:::-;5625:59;;5734:2;5723:9;5719:18;5706:32;5693:45;;5747:31;5772:5;5747:31;:::i;:::-;5797:5;;-1:-1:-1;5855:2:249;5840:18;;5827:32;;5871:16;;;5868:36;;;5900:1;5897;5890:12;5868:36;;5923:51;5966:7;5955:8;5944:9;5940:24;5923:51;:::i;:::-;5287:744;;;;-1:-1:-1;5913:61:249;;6021:2;6006:18;5993:32;;-1:-1:-1;;;5287:744:249:o;6036:768::-;6156:6;6164;6172;6180;6233:3;6221:9;6212:7;6208:23;6204:33;6201:53;;;6250:1;6247;6240:12;6201:53;6290:9;6277:23;6319:18;6360:2;6352:6;6349:14;6346:34;;;6376:1;6373;6366:12;6346:34;6399:49;6440:7;6431:6;6420:9;6416:22;6399:49;:::i;:::-;6389:59;;6495:2;6484:9;6480:18;6467:32;6457:42;;6552:2;6541:9;6537:18;6524:32;6508:48;;6581:2;6571:8;6568:16;6565:36;;;6597:1;6594;6587:12;6565:36;;6620:51;6663:7;6652:8;6641:9;6637:24;6620:51;:::i;:::-;6610:61;;;6721:2;6710:9;6706:18;6693:32;6754:1;6747:5;6744:12;6734:40;;6770:1;6767;6760:12;6734:40;6036:768;;;;-1:-1:-1;6036:768:249;;-1:-1:-1;;6036:768:249:o;7001:321::-;7070:6;7123:2;7111:9;7102:7;7098:23;7094:32;7091:52;;;7139:1;7136;7129:12;7091:52;7179:9;7166:23;7212:18;7204:6;7201:30;7198:50;;;7244:1;7241;7234:12;7198:50;7267:49;7308:7;7299:6;7288:9;7284:22;7267:49;:::i;:::-;7257:59;7001:321;-1:-1:-1;;;;7001:321:249:o;8921:245::-;8988:6;9041:2;9029:9;9020:7;9016:23;9012:32;9009:52;;;9057:1;9054;9047:12;9009:52;9089:9;9083:16;9108:28;9130:5;9108:28;:::i;9875:320::-;9950:5;9979:52;9995:35;10023:6;9995:35;:::i;9979:52::-;9970:61;;10054:6;10047:5;10040:21;10094:3;10085:6;10080:3;10076:16;10073:25;10070:45;;;10111:1;10108;10101:12;10070:45;10124:65;10182:6;10175:4;10168:5;10164:16;10159:3;10124:65;:::i;10200:457::-;10279:6;10332:2;10320:9;10311:7;10307:23;10303:32;10300:52;;;10348:1;10345;10338:12;10300:52;10381:9;10375:16;10414:18;10406:6;10403:30;10400:50;;;10446:1;10443;10436:12;10400:50;10469:22;;10522:4;10514:13;;10510:27;-1:-1:-1;10500:55:249;;10551:1;10548;10541:12;10500:55;10574:77;10643:7;10638:2;10632:9;10627:2;10623;10619:11;10574:77;:::i;10662:381::-;10857:2;10846:9;10839:21;10820:4;10883:45;10924:2;10913:9;10909:18;10901:6;10883:45;:::i;:::-;10976:9;10968:6;10964:22;10959:2;10948:9;10944:18;10937:50;11004:33;11030:6;11022;11004:33;:::i;11048:793::-;11147:6;11200:3;11188:9;11179:7;11175:23;11171:33;11168:53;;;11217:1;11214;11207:12;11168:53;11243:22;;:::i;:::-;11294:9;11288:16;11281:5;11274:31;11358:2;11347:9;11343:18;11337:25;11332:2;11325:5;11321:14;11314:49;11408:2;11397:9;11393:18;11387:25;11421:30;11443:7;11421:30;:::i;:::-;11483:7;11478:2;11471:5;11467:14;11460:31;;11544:2;11533:9;11529:18;11523:25;11518:2;11511:5;11507:14;11500:49;11603:3;11592:9;11588:19;11582:26;11576:3;11569:5;11565:15;11558:51;11663:3;11652:9;11648:19;11642:26;11636:3;11629:5;11625:15;11618:51;11714:3;11703:9;11699:19;11693:26;11750:1;11741:7;11738:14;11728:42;;11766:1;11763;11756:12;11728:42;11797:3;11786:15;;11779:32;11790:5;11048:793;-1:-1:-1;;;11048:793:249:o;12200:409::-;12403:2;12392:9;12385:21;12366:4;12423:45;12464:2;12453:9;12449:18;12441:6;12423:45;:::i;:::-;12415:53;;12504:6;12499:2;12488:9;12484:18;12477:34;12559:42;12551:6;12547:55;12542:2;12531:9;12527:18;12520:83;12200:409;;;;;;:::o;13017:524::-;13130:6;13138;13146;13154;13207:3;13195:9;13186:7;13182:23;13178:33;13175:53;;;13224:1;13221;13214:12;13175:53;13256:9;13250:16;13275:31;13300:5;13275:31;:::i;:::-;13375:2;13360:18;;13354:25;13325:5;;-1:-1:-1;13388:33:249;13354:25;13388:33;:::i;:::-;13487:2;13472:18;;13466:25;13531:2;13516:18;;;13510:25;13017:524;;13440:7;;-1:-1:-1;13017:524:249;-1:-1:-1;;;13017:524:249:o;14920:411::-;15137:42;15129:6;15125:55;15114:9;15107:74;15217:2;15212;15201:9;15197:18;15190:30;15088:4;15237:45;15278:2;15267:9;15263:18;15255:6;15237:45;:::i;:::-;15229:53;;15318:6;15313:2;15302:9;15298:18;15291:34;14920:411;;;;;;:::o;15336:138::-;15415:13;;15437:31;15415:13;15437:31;:::i;:::-;15336:138;;;:::o;15479:251::-;15549:6;15602:2;15590:9;15581:7;15577:23;15573:32;15570:52;;;15618:1;15615;15608:12;15570:52;15650:9;15644:16;15669:31;15694:5;15669:31;:::i;15735:964::-;16100:4;16129:42;16210:2;16202:6;16198:15;16187:9;16180:34;16250:3;16245:2;16234:9;16230:18;16223:31;16277:46;16318:3;16307:9;16303:19;16295:6;16277:46;:::i;:::-;16354:9;16346:6;16342:22;16400:2;16395;16384:9;16380:18;16373:30;16427:1;16419:6;16412:17;16477:2;16469:6;16465:15;16460:2;16449:9;16445:18;16438:43;16532:6;16525:14;16518:22;16512:3;16501:9;16497:19;16490:51;16586:2;16582;16578:11;16572:3;16561:9;16557:19;16550:40;;16607:42;16645:2;16637:6;16633:15;16625:6;16607:42;:::i;:::-;16599:50;;;;16686:6;16680:3;16669:9;16665:19;16658:35;15735:964;;;;;;;;;:::o;17318:421::-;17517:2;17506:9;17499:21;17480:4;17537:45;17578:2;17567:9;17563:18;17555:6;17537:45;:::i;:::-;17630:42;17618:55;;;;17613:2;17598:18;;17591:83;-1:-1:-1;17717:14:249;;17710:22;17705:2;17690:18;;;17683:50;17529:53;17318:421;-1:-1:-1;17318:421:249:o;18154:426::-;18363:2;18352:9;18345:21;18326:4;18383:45;18424:2;18413:9;18409:18;18401:6;18383:45;:::i;:::-;18375:53;;18476:4;18468:6;18464:17;18459:2;18448:9;18444:18;18437:45;18530:42;18522:6;18518:55;18513:2;18502:9;18498:18;18491:83;18154:426;;;;;;:::o;19121:184::-;19173:77;19170:1;19163:88;19270:4;19267:1;19260:15;19294:4;19291:1;19284:15;19310:653;19585:3;19574:9;19567:22;19548:4;19612:46;19653:3;19642:9;19638:19;19630:6;19612:46;:::i;:::-;19706:42;19698:6;19694:55;19689:2;19678:9;19674:18;19667:83;19786:6;19781:2;19770:9;19766:18;19759:34;19841:9;19833:6;19829:22;19824:2;19813:9;19809:18;19802:50;19869:33;19895:6;19887;19869:33;:::i;:::-;19861:41;;;19951:4;19943:6;19939:17;19933:3;19922:9;19918:19;19911:46;19310:653;;;;;;;;:::o;20501:340::-;20678:2;20667:9;20660:21;20641:4;20698:45;20739:2;20728:9;20724:18;20716:6;20698:45;:::i;:::-;20690:53;;20791:42;20783:6;20779:55;20774:2;20763:9;20759:18;20752:83;20501:340;;;;;:::o;20846:531::-;21087:66;21079:6;21075:79;21064:9;21057:98;21191:2;21186;21175:9;21171:18;21164:30;21038:4;21217:45;21258:2;21247:9;21243:18;21235:6;21217:45;:::i;:::-;21310:9;21302:6;21298:22;21293:2;21282:9;21278:18;21271:50;21338:33;21364:6;21356;21338:33;:::i;:::-;21330:41;20846:531;-1:-1:-1;;;;;;20846:531:249:o;21382:184::-;21452:6;21505:2;21493:9;21484:7;21480:23;21476:32;21473:52;;;21521:1;21518;21511:12;21473:52;-1:-1:-1;21544:16:249;;21382:184;-1:-1:-1;21382:184:249:o;22328:605::-;22449:6;22457;22465;22473;22526:3;22514:9;22505:7;22501:23;22497:33;22494:53;;;22543:1;22540;22533:12;22494:53;22575:9;22569:16;22594:31;22619:5;22594:31;:::i;:::-;22689:2;22674:18;;22668:25;22738:2;22723:18;;22717:25;22644:5;;-1:-1:-1;22668:25:249;-1:-1:-1;22751:33:249;22717:25;22751:33;:::i;:::-;22855:2;22840:18;;22834:25;22803:7;;-1:-1:-1;22868:33:249;22834:25;22868:33;:::i;23343:289::-;23474:3;23512:6;23506:13;23528:66;23587:6;23582:3;23575:4;23567:6;23563:17;23528:66;:::i;:::-;23610:16;;;;;23343:289;-1:-1:-1;;23343:289:249:o;24619:184::-;24671:77;24668:1;24661:88;24768:4;24765:1;24758:15;24792:4;24789:1;24782:15;24808:125;24873:9;;;24894:10;;;24891:36;;;24907:18;;:::i;24938:236::-;24992:5;25045:3;25038:4;25030:6;25026:17;25022:27;25012:55;;25063:1;25060;25053:12;25012:55;25085:83;25164:3;25155:6;25149:13;25142:4;25134:6;25130:17;25085:83;:::i;25179:1113::-;25282:6;25335:2;25323:9;25314:7;25310:23;25306:32;25303:52;;;25351:1;25348;25341:12;25303:52;25384:9;25378:16;25413:18;25454:2;25446:6;25443:14;25440:34;;;25470:1;25467;25460:12;25440:34;25493:22;;;;25549:6;25531:16;;;25527:29;25524:49;;;25569:1;25566;25559:12;25524:49;25595:22;;:::i;:::-;25646:2;25640:9;25633:5;25626:24;25682:42;25720:2;25716;25712:11;25682:42;:::i;:::-;25677:2;25670:5;25666:14;25659:66;25771:2;25767;25763:11;25757:18;25752:2;25745:5;25741:14;25734:42;25822:2;25818;25814:11;25808:18;25803:2;25796:5;25792:14;25785:42;25866:3;25862:2;25858:12;25852:19;25896:2;25886:8;25883:16;25880:36;;;25912:1;25909;25902:12;25880:36;25949:56;25997:7;25986:8;25982:2;25978:17;25949:56;:::i;:::-;25943:3;25936:5;25932:15;25925:81;;26053:3;26049:2;26045:12;26039:19;26033:3;26026:5;26022:15;26015:44;26092:43;26130:3;26126:2;26122:12;26092:43;:::i;:::-;26086:3;26075:15;;26068:68;26183:3;26175:12;;;26169:19;26152:15;;;26145:44;26208:3;26249:11;;;26243:18;26227:14;;;26220:42;;;;-1:-1:-1;26079:5:249;25179:1113;-1:-1:-1;;;25179:1113:249:o;28097:903::-;28210:6;28241:3;28285:2;28273:9;28264:7;28260:23;28256:32;28253:52;;;28301:1;28298;28291:12;28253:52;28334:2;28328:9;28364:15;;;;28409:18;28394:34;;28430:22;;;28391:62;28388:88;;;28456:18;;:::i;:::-;28496:10;28492:2;28485:22;28537:9;28531:16;28523:6;28516:32;28602:2;28591:9;28587:18;28581:25;28576:2;28568:6;28564:15;28557:50;28661:2;28650:9;28646:18;28640:25;28635:2;28627:6;28623:15;28616:50;28720:2;28709:9;28705:18;28699:25;28694:2;28686:6;28682:15;28675:50;28780:3;28769:9;28765:19;28759:26;28753:3;28745:6;28741:16;28734:52;28841:3;28830:9;28826:19;28820:26;28814:3;28806:6;28802:16;28795:52;28902:3;28891:9;28887:19;28881:26;28875:3;28867:6;28863:16;28856:52;28963:3;28952:9;28948:19;28942:26;28936:3;28928:6;28924:16;28917:52;28988:6;28978:16;;;;28097:903;;;;:::o;29005:168::-;29078:9;;;29109;;29126:15;;;29120:22;;29106:37;29096:71;;29147:18;;:::i;29178:274::-;29218:1;29244;29234:189;;29279:77;29276:1;29269:88;29380:4;29377:1;29370:15;29408:4;29405:1;29398:15;29234:189;-1:-1:-1;29437:9:249;;29178:274::o;29727:289::-;29902:6;29891:9;29884:25;29945:2;29940;29929:9;29925:18;29918:30;29865:4;29965:45;30006:2;29995:9;29991:18;29983:6;29965:45;:::i;30021:489::-;30248:3;30237:9;30230:22;30211:4;30269:46;30310:3;30299:9;30295:19;30287:6;30269:46;:::i;:::-;30363:42;30351:55;;;;30346:2;30331:18;;30324:83;-1:-1:-1;30438:2:249;30423:18;;30416:34;;;;30498:4;30486:17;30481:2;30466:18;;;30459:45;30261:54;30021:489;-1:-1:-1;30021:489:249:o","linkReferences":{"src/libraries/Security.sol":{"Security":[{"start":16623,"length":20},{"start":17534,"length":20},{"start":17655,"length":20},{"start":18815,"length":20},{"start":18936,"length":20}]},"src/libraries/StorageKeyLib.sol":{"StorageKeyLib":[{"start":13065,"length":20}]}},"immutableReferences":{"71353":[{"start":4387,"length":32},{"start":4845,"length":32},{"start":5952,"length":32},{"start":6434,"length":32},{"start":8137,"length":32},{"start":8530,"length":32},{"start":8670,"length":32},{"start":8923,"length":32},{"start":9878,"length":32},{"start":10842,"length":32},{"start":11994,"length":32},{"start":13315,"length":32},{"start":13932,"length":32},{"start":14384,"length":32},{"start":16411,"length":32},{"start":16868,"length":32},{"start":17859,"length":32},{"start":18175,"length":32},{"start":18560,"length":32}],"71356":[{"start":13097,"length":32}],"71437":[{"start":12431,"length":32},{"start":12896,"length":32}]}},"methodIdentifiers":{"ACL_ADMIN()":"5e209249","ACTION()":"dbd55fb3","ACTION_MANAGER()":"25889b22","ACTION_MANAGER_NAME_ACTIONS()":"739baf49","ACTION_USER_IMPLENTATION_CALLER()":"c414d4f9","ADDRESS_ACTION_MANAGER()":"ba9a08d7","ADDRESS_BLUEPRINT_MANAGER()":"e642ad34","ADDRESS_LENDER_MARKET()":"423ac8d9","ADDRESS_MANAGER_ACCESS_CONTROL()":"5f39ca22","ADDRESS_MODULE_MANAGER()":"420ea360","ADDRESS_MONEY_MARKET_NAME_BLUEPRINT()":"be22fa1e","ADDRESS_NAME_CONCRETE()":"d017d357","ADDRESS_NAME_MASTERVAULT()":"e51a3bab","ADDRESS_NAME_PORTFOLIO()":"430c6fe6","ADDRESS_NAME_STREAMVAULT()":"697e744c","ADDRESS_NAME_TOKEN_ETH()":"8b3e0471","ADDRESS_NAME_TOKEN_USDC()":"6a0b3f64","ADDRESS_NAME_TOKEN_WETH()":"26026d18","ADDRESS_STAKEABLE_C_ASSET_TOKEN()":"608dade9","ADDRESS_TOKEN_CHAIN_PRICEFEED()":"a652cb80","ADDRESS_TOKEN_PRICEFEED()":"057afbfe","ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT()":"a2fd43c5","BLUEPRINT()":"0072e140","BLUEPRINT_MANAGER()":"95789e1c","BLUEPRINT_MANAGER_NAME_BLUEPRINTS()":"2d1da17e","CONCRETE_MANAGER()":"2a0f4d6b","COUNTER_CLAIM_ID()":"a5be6063","COUNTER_LOAN_ID()":"724348ab","COUNTER_PORTFOLIO_ID()":"79c52aca","COUNTER_PROTECTION_ID()":"c5ad7879","COUNTER_RECEIPT_ID()":"f61e60f2","CT_REWARDS_TREASURY()":"5e61dc38","CT_STAKING_CONTRACT()":"264c1356","CT_TOKEN_ADDRESS()":"d88597de","MODULE()":"094d3a34","MODULE_MANAGER()":"8b40da7d","MODULE_MANAGER_NAME_MODULES()":"59dcf3f6","PORTFOLIOID_INDEX_TO_LOANID()":"ca6d5e33","PORTFOLIOID_INDEX_TO_USER()":"42ff308b","PORTFOLIOID_TO_USER()":"91aab3e4","PROTOCOL()":"91b9b827","PROTOCOL_MANAGER()":"ccca8911","RECEIPTID_TO_POSITION()":"d83205c0","RECEIPTID_TO_USER()":"ec11384a","ROLE_NAME_USER_TO_EXIST()":"7a25c9d3","STAKING_DURATION_AND_REWARDS()":"af895a3b","STAKING_RECEIPT_ADDRESS()":"9e5f8542","SUDO_ADMIN()":"8c3e62b6","TOKEN_LENDER_NAME_COLLATERAL_APPROVED()":"00a9d96e","USER_ID_CLAIM()":"d15263d3","USER_ID_PROTECTION()":"62a4c3df","USER_ID_PROTECTIONID()":"b70855fb","USER_ID_PROTECTION_FINANCIAL_TERMS()":"aacb7f34","USER_ID_PROTECTION_UPDATES()":"eaca3864","USER_INDEX_TO_BORROWDATA()":"7d49df3b","USER_INDEX_TO_LOANID()":"7d95de8e","USER_INDEX_TO_LOANINITIALDATA()":"61945bfc","USER_INDEX_TO_LOANSUPPLYDATA()":"678df18f","USER_INDEX_TO_LOANUPDATE()":"9d185264","USER_TO_PORTFOLIOID()":"638bf74f","USER_TO_RECEIPT_INDEX_COUNT()":"0e494332","borrow(bytes,uint256,address,string,uint256)":"0d6c8e77","executeActionTransaction(string,uint256,bytes,uint8)":"8d7e9e94","getActionAddress(string)":"ffbf5163","initiateSupply(uint256,string,address,bytes,uint256)":"51de0372","repay(bytes,uint256,address,string,uint256)":"216684b3","setApprovedCollateralToLender(string,address,bool)":"7feee92e","withdraw(bytes,address,string,uint256)":"856203f5"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"concreteStorage_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"lender\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"blueprintAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"borrowData\",\"type\":\"bytes\"}],\"name\":\"Borrow\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"lender\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"blueprint\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"repayData\",\"type\":\"bytes\"}],\"name\":\"Repay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"lender\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"blueprintAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"supplyData\",\"type\":\"bytes\"}],\"name\":\"Supply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"TransferCancelFee\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"loanId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"updateData\",\"type\":\"bytes\"}],\"name\":\"UpdateProtectionLB\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"lender\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"blueprint\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"borrower\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"withdrawData\",\"type\":\"bytes\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACL_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_MANAGER_NAME_ACTIONS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ACTION_USER_IMPLENTATION_CALLER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_ACTION_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_LENDER_MARKET\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MANAGER_ACCESS_CONTROL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_CONCRETE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_MASTERVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_PORTFOLIO\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_STREAMVAULT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_ETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_USDC\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_NAME_TOKEN_WETH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_STAKEABLE_C_ASSET_TOKEN\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_CHAIN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_TOKEN_PRICEFEED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"BLUEPRINT_MANAGER_NAME_BLUEPRINTS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CONCRETE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_CLAIM_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_LOAN_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PORTFOLIO_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_PROTECTION_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COUNTER_RECEIPT_ID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_REWARDS_TREASURY\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_STAKING_CONTRACT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CT_TOKEN_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_MANAGER_NAME_MODULES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_INDEX_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PORTFOLIOID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROTOCOL_MANAGER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_POSITION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RECEIPTID_TO_USER\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROLE_NAME_USER_TO_EXIST\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_DURATION_AND_REWARDS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"STAKING_RECEIPT_ADDRESS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"SUDO_ADMIN\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN_LENDER_NAME_COLLATERAL_APPROVED\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_CLAIM\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTIONID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_FINANCIAL_TERMS\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_ID_PROTECTION_UPDATES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_BORROWDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANINITIALDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANSUPPLYDATA\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_INDEX_TO_LOANUPDATE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_PORTFOLIOID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USER_TO_RECEIPT_INDEX_COUNT\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"borrowData_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalf_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"lenderName_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"}],\"name\":\"borrow\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data_\",\"type\":\"bytes\"},{\"internalType\":\"enum Enum.Operation\",\"name\":\"operation_\",\"type\":\"uint8\"}],\"name\":\"executeActionTransaction\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"actionName_\",\"type\":\"string\"}],\"name\":\"getActionAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"lenderName_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"onBehalf_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"supplyData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"loandId_\",\"type\":\"uint256\"}],\"name\":\"initiateSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"repayData_\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"onBehalf_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"lenderName_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"}],\"name\":\"repay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"lender_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"collateral_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"value_\",\"type\":\"bool\"}],\"name\":\"setApprovedCollateralToLender\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"withdrawData_\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"onBehalf_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"lenderName_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"loanId_\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"borrow(bytes,uint256,address,string,uint256)\":{\"params\":{\"borrowData_\":\"The borrow data for the lender\",\"lenderName_\":\"The name of the lender\",\"loanId_\":\"The user loan id\",\"onBehalf_\":\"The user who we are borrowing for\",\"value_\":\"Ether value\"}},\"initiateSupply(uint256,string,address,bytes,uint256)\":{\"params\":{\"lenderName_\":\"The name of the lender\",\"loandId_\":\"The loan Id\",\"onBehalf_\":\"The user who we are onboarding\",\"supplyData\":\"The supply data for the lender\",\"value_\":\"Ether value\"}},\"repay(bytes,uint256,address,string,uint256)\":{\"params\":{\"lenderName_\":\"The name of the lender\",\"onBehalf_\":\"The user who we are repaying for\",\"repayData_\":\"The repay data for the lender\",\"value_\":\"Ether value\"}},\"withdraw(bytes,address,string,uint256)\":{\"params\":{\"lenderName_\":\"The name of the lender\",\"loanId_\":\"The user loan id\",\"onBehalf_\":\"The user who we are repaying for\",\"withdrawData_\":\"The withdraw data for the lender\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"borrow(bytes,uint256,address,string,uint256)\":{\"notice\":\"The borrow function is a universal function to borrow from a specified lender\"},\"repay(bytes,uint256,address,string,uint256)\":{\"notice\":\"The repay function is a universal function to repay debt to a specified lender\"},\"withdraw(bytes,address,string,uint256)\":{\"notice\":\"The withdraw function is a universal function to withdraw collateral from a specified lender\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/borrow/blueprints/lender/LenderBlueprint.sol\":\"LenderBlueprint\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":10000000},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155\",\"dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xca12be071e48f0378179113989f057819c3c1fe70e73e778fb00c9441768cb61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://60e10ff5a0dd6e15a89cd7e1c0190ba139772efeb696994933d2e54a23fab6cc\",\"dweb:/ipfs/QmVt9Ndx7AiWq1qtzjS5NXsqzfhfUeEQ7XXcLLQJXFvJtK\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323\",\"dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd\",\"dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x51ccb6df77b7f738be30d7f023cf76532d90e4b70b2c2df311061240a3762ee4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97e820398691048f12a39bd44ad4a65a30d04b56aba3130fe078d6bc3a27e909\",\"dweb:/ipfs/QmYsXHTrn7PhvdV2QBqiC7mDnBPgpFAcPjMAKRWkkJgXBR\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245\",\"dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"src/borrow/actions/loan/interfaces/ILoan.sol\":{\"keccak256\":\"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0\",\"dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ\"]},\"src/borrow/actions/protection/interfaces/IProtection.sol\":{\"keccak256\":\"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d\",\"dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2\"]},\"src/borrow/blueprints/lender/LenderBlueprint.sol\":{\"keccak256\":\"0x1962ee85c837806aa64e279c003d663bc90452b4fd1e79b1cfe8939546443dee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2f1d04e338fe807336a58cdf78e1990ee70645c0ff821440caa436518b4d9d0\",\"dweb:/ipfs/QmeLCh3t5fXZkDETAzCRRaXvhWw6n9hiGJmeNz4jnRrbJS\"]},\"src/borrow/utils/implementations/interfaces/ILenderBase.sol\":{\"keccak256\":\"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f\",\"dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK\"]},\"src/core/ActionManager.sol\":{\"keccak256\":\"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831\",\"dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG\"]},\"src/core/Executor.sol\":{\"keccak256\":\"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f\",\"dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h\"]},\"src/core/interfaces/IACL.sol\":{\"keccak256\":\"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a\",\"dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo\"]},\"src/core/interfaces/IConcreteStorage.sol\":{\"keccak256\":\"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8\",\"dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF\"]},\"src/core/interfaces/IERC165.sol\":{\"keccak256\":\"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473\",\"dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7\"]},\"src/core/utils/ConcreteRoles.sol\":{\"keccak256\":\"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab\",\"dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72\"]},\"src/core/utils/OnlyRole.sol\":{\"keccak256\":\"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a\",\"dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN\"]},\"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol\":{\"keccak256\":\"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980\",\"dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj\"]},\"src/helpers/Enum.sol\":{\"keccak256\":\"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2\",\"dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh\"]},\"src/helpers/Pointer.sol\":{\"keccak256\":\"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c\",\"dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ\"]},\"src/helpers/StorageHandler.sol\":{\"keccak256\":\"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab\",\"dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa\"]},\"src/helpers/base/BlueprintBase.sol\":{\"keccak256\":\"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0\",\"dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC\"]},\"src/libraries/BorrowEvents.sol\":{\"keccak256\":\"0xb33cee7ff7d279563b717b9fee9c24faef33368819add1a674b31ccea0d64822\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b52d128362b9a159e0d0d353de964687d736e1825f8564bb2552b0bd310bb7\",\"dweb:/ipfs/QmbsLhoTFXXGetgSX31QzSzWYhvMtD5UR1yfSGBdvvBPXR\"]},\"src/libraries/Security.sol\":{\"keccak256\":\"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c\",\"dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY\"]},\"src/libraries/StorageKeyLib.sol\":{\"keccak256\":\"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f\",\"dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq\"]},\"src/libraries/borrowMath/CancelationFeeCalculator.sol\":{\"keccak256\":\"0xbcef297fac24166b6d4bb320b5f067265547df3886855fa184b850133627f33c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61263b33ac50ee0e3dae6355926bb744ca1f76447d067d36e420d09f9c9bda0e\",\"dweb:/ipfs/Qme6K7v9Liv43SFg7Qh4gykGmDWzJJvP3D6rZQN94bMj6d\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"concreteStorage_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"string","name":"lender","type":"string","indexed":false},{"internalType":"address","name":"blueprintAddress","type":"address","indexed":true},{"internalType":"address","name":"borrower","type":"address","indexed":true},{"internalType":"bytes","name":"borrowData","type":"bytes","indexed":false}],"type":"event","name":"Borrow","anonymous":false},{"inputs":[{"internalType":"string","name":"lender","type":"string","indexed":false},{"internalType":"address","name":"blueprint","type":"address","indexed":true},{"internalType":"address","name":"borrower","type":"address","indexed":true},{"internalType":"bytes","name":"repayData","type":"bytes","indexed":false}],"type":"event","name":"Repay","anonymous":false},{"inputs":[{"internalType":"string","name":"lender","type":"string","indexed":true},{"internalType":"address","name":"blueprintAddress","type":"address","indexed":true},{"internalType":"bytes","name":"supplyData","type":"bytes","indexed":false}],"type":"event","name":"Supply","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":true},{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"vault","type":"address","indexed":true}],"type":"event","name":"TransferCancelFee","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"uint256","name":"loanId","type":"uint256","indexed":false},{"internalType":"bytes","name":"updateData","type":"bytes","indexed":false}],"type":"event","name":"UpdateProtectionLB","anonymous":false},{"inputs":[{"internalType":"string","name":"lender","type":"string","indexed":false},{"internalType":"address","name":"blueprint","type":"address","indexed":true},{"internalType":"address","name":"borrower","type":"address","indexed":true},{"internalType":"bytes","name":"withdrawData","type":"bytes","indexed":false}],"type":"event","name":"Withdraw","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ACL_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_MANAGER_NAME_ACTIONS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ACTION_USER_IMPLENTATION_CALLER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_ACTION_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_BLUEPRINT_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_LENDER_MARKET","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MANAGER_ACCESS_CONTROL","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MODULE_MANAGER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_MONEY_MARKET_NAME_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_CONCRETE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_MASTERVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_PORTFOLIO","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_STREAMVAULT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_ETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_USDC","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_NAME_TOKEN_WETH","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_STAKEABLE_C_ASSET_TOKEN","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_CHAIN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_TOKEN_PRICEFEED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"BLUEPRINT_MANAGER_NAME_BLUEPRINTS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CONCRETE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_CLAIM_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_LOAN_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PORTFOLIO_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_PROTECTION_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNTER_RECEIPT_ID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_REWARDS_TREASURY","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_STAKING_CONTRACT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"CT_TOKEN_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_MANAGER_NAME_MODULES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_INDEX_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PORTFOLIOID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PROTOCOL_MANAGER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_POSITION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RECEIPTID_TO_USER","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ROLE_NAME_USER_TO_EXIST","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_DURATION_AND_REWARDS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"STAKING_RECEIPT_ADDRESS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"SUDO_ADMIN","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_CLAIM","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTIONID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_FINANCIAL_TERMS","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_ID_PROTECTION_UPDATES","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_BORROWDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANINITIALDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANSUPPLYDATA","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_INDEX_TO_LOANUPDATE","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_PORTFOLIOID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USER_TO_RECEIPT_INDEX_COUNT","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"borrowData_","type":"bytes"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"address","name":"onBehalf_","type":"address"},{"internalType":"string","name":"lenderName_","type":"string"},{"internalType":"uint256","name":"loanId_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"borrow"},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"bytes","name":"data_","type":"bytes"},{"internalType":"enum Enum.Operation","name":"operation_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"executeActionTransaction","outputs":[{"internalType":"bool","name":"success","type":"bool"}]},{"inputs":[{"internalType":"string","name":"actionName_","type":"string"}],"stateMutability":"view","type":"function","name":"getActionAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"string","name":"lenderName_","type":"string"},{"internalType":"address","name":"onBehalf_","type":"address"},{"internalType":"bytes","name":"supplyData","type":"bytes"},{"internalType":"uint256","name":"loandId_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initiateSupply"},{"inputs":[{"internalType":"bytes","name":"repayData_","type":"bytes"},{"internalType":"uint256","name":"value_","type":"uint256"},{"internalType":"address","name":"onBehalf_","type":"address"},{"internalType":"string","name":"lenderName_","type":"string"},{"internalType":"uint256","name":"loanId_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"repay"},{"inputs":[{"internalType":"string","name":"lender_","type":"string"},{"internalType":"address","name":"collateral_","type":"address"},{"internalType":"bool","name":"value_","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovedCollateralToLender"},{"inputs":[{"internalType":"bytes","name":"withdrawData_","type":"bytes"},{"internalType":"address","name":"onBehalf_","type":"address"},{"internalType":"string","name":"lenderName_","type":"string"},{"internalType":"uint256","name":"loanId_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"}],"devdoc":{"kind":"dev","methods":{"borrow(bytes,uint256,address,string,uint256)":{"params":{"borrowData_":"The borrow data for the lender","lenderName_":"The name of the lender","loanId_":"The user loan id","onBehalf_":"The user who we are borrowing for","value_":"Ether value"}},"initiateSupply(uint256,string,address,bytes,uint256)":{"params":{"lenderName_":"The name of the lender","loandId_":"The loan Id","onBehalf_":"The user who we are onboarding","supplyData":"The supply data for the lender","value_":"Ether value"}},"repay(bytes,uint256,address,string,uint256)":{"params":{"lenderName_":"The name of the lender","onBehalf_":"The user who we are repaying for","repayData_":"The repay data for the lender","value_":"Ether value"}},"withdraw(bytes,address,string,uint256)":{"params":{"lenderName_":"The name of the lender","loanId_":"The user loan id","onBehalf_":"The user who we are repaying for","withdrawData_":"The withdraw data for the lender"}}},"version":1},"userdoc":{"kind":"user","methods":{"borrow(bytes,uint256,address,string,uint256)":{"notice":"The borrow function is a universal function to borrow from a specified lender"},"repay(bytes,uint256,address,string,uint256)":{"notice":"The repay function is a universal function to repay debt to a specified lender"},"withdraw(bytes,address,string,uint256)":{"notice":"The withdraw function is a universal function to withdraw collateral from a specified lender"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","chainlink/=lib/chainlink/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":10000000},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/borrow/blueprints/lender/LenderBlueprint.sol":"LenderBlueprint"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x9cac1f97ecc92043dd19235d6677e40cf6bac382886a94f7a80a957846b24229","urls":["bzz-raw://a1e0c924e0edfdfd4abceeb552d99f1cd95c0d387b38ccb1f67c583607e3d155","dweb:/ipfs/QmZAi6qKa66zuS3jyEhsQR9bBNnZe1wSognYqw9nvseyUz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xca12be071e48f0378179113989f057819c3c1fe70e73e778fb00c9441768cb61","urls":["bzz-raw://60e10ff5a0dd6e15a89cd7e1c0190ba139772efeb696994933d2e54a23fab6cc","dweb:/ipfs/QmVt9Ndx7AiWq1qtzjS5NXsqzfhfUeEQ7XXcLLQJXFvJtK"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x88f7b6f070ad1de2bf899da6978ed74b5038eac78c01b7359b92b60c3d965c28","urls":["bzz-raw://c436edb6733a036607c6f17cc590e8ee351363a8cb4c564a98d9a66392c89323","dweb:/ipfs/QmcJvJR2K3EtYcKEXVpQ1WqT6TvAbVem5HR1FirAsqEXFR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xe9d36d0c892aea68546d53f21e02223f7f542295c10110a0764336f9ffeab6d1","urls":["bzz-raw://34d4d72a89193f4d5223763e6d871443fb32a22d6024566843f4ee42eed68bdd","dweb:/ipfs/Qmbsc6kJJNhrkNXP7g7KeqzRETQEvzSXg3ZmJmVLhaEahB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x51ccb6df77b7f738be30d7f023cf76532d90e4b70b2c2df311061240a3762ee4","urls":["bzz-raw://97e820398691048f12a39bd44ad4a65a30d04b56aba3130fe078d6bc3a27e909","dweb:/ipfs/QmYsXHTrn7PhvdV2QBqiC7mDnBPgpFAcPjMAKRWkkJgXBR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xaf28a975a78550e45f65e559a3ad6a5ad43b9b8a37366999abd1b7084eb70721","urls":["bzz-raw://b7bd24e224f67f65bfadf85dc2929fa965456bb2415478bd0125471b5ce35245","dweb:/ipfs/QmRaydGr8BTHs1kvaZfsNU69pKzUAGFrvABn1KiRSbE51y"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"src/borrow/actions/loan/interfaces/ILoan.sol":{"keccak256":"0x480b6f3e77fa06b41094bc72156b49be60d370a1fb2dacaa6a268055e6e6a4a4","urls":["bzz-raw://a77e66e3a8a5b51583690d5de1a79ebb09b3b67fad1ecbe8d2051dc78aebe9c0","dweb:/ipfs/Qmbye5EQPaF9eH6uZT6r3ySXjSd5sQGopG8foQNzwS4KVJ"],"license":"MIT"},"src/borrow/actions/protection/interfaces/IProtection.sol":{"keccak256":"0x80fae7d7861e102fd5aa5114c1f4c8719dc715dd522fafde4db9bc7ca2912935","urls":["bzz-raw://2021dcaeaab733eac94a50f62a412ec9aff18f1ad74ce8a97e8489bcee5d604d","dweb:/ipfs/QmbTf1AhRB5VCEEcpLRGWeXAX9jtRNni7gVNmdGhR2pBB2"],"license":"MIT"},"src/borrow/blueprints/lender/LenderBlueprint.sol":{"keccak256":"0x1962ee85c837806aa64e279c003d663bc90452b4fd1e79b1cfe8939546443dee","urls":["bzz-raw://a2f1d04e338fe807336a58cdf78e1990ee70645c0ff821440caa436518b4d9d0","dweb:/ipfs/QmeLCh3t5fXZkDETAzCRRaXvhWw6n9hiGJmeNz4jnRrbJS"],"license":"MIT"},"src/borrow/utils/implementations/interfaces/ILenderBase.sol":{"keccak256":"0xe5abecc83f02043c6ef0f7a423ddc537470c551e94ad392c33f4f1efe5903bb7","urls":["bzz-raw://52ecf73824406818393f8a01069f36cb07ce9b11753eecccb96323dc389d1d1f","dweb:/ipfs/Qmf8v7QVYkKBrJGyh6rwEWBkgZADxDpMX5LbVs1PLvLswK"],"license":"MIT"},"src/core/ActionManager.sol":{"keccak256":"0xa623fd1e8194f514f521cebcab072565b883548cfd42e5abcaaaab024b69104a","urls":["bzz-raw://6c2b6a696abdbfa55e37aae6a2228f2506fe20ed0527e130eb702ae7b9d5b831","dweb:/ipfs/QmQT8E7zdhJKZcLsotF9BLfiaCHL2v6a1NVEUCTfdPDEuG"],"license":"MIT"},"src/core/Executor.sol":{"keccak256":"0x6498725bdc785ddbd7089b9af36f774cb3b2a8fa740d1547aaaee78dcf58dc1e","urls":["bzz-raw://cc81ec7fdebcd50205507312457eae60d49fe7e18be1322df23b7b74d240675f","dweb:/ipfs/QmaBTXywpUVrtoStj9k4LRyK2LmayQdSAeiwwuw7ETWW8h"],"license":"MIT"},"src/core/interfaces/IACL.sol":{"keccak256":"0x4110efeddc38fc005e3137864728674fb25a41d61260c3d90ff81325af921aa5","urls":["bzz-raw://e266cf35db30b449e210894f452292e030ab95fc35d1b6c85ddb89261648770a","dweb:/ipfs/QmXkkCM1QQwJBuUidSvmksVZHVxcxt9vgADJ2tNvZTuhEo"],"license":"MIT"},"src/core/interfaces/IConcreteStorage.sol":{"keccak256":"0xec71a7106b92df473019b159edfeaa9c81d1e6276b7a2fc6f21686b23ac902e9","urls":["bzz-raw://f2cdbdcd2358925389714b12d8b55afaac73d587a397cfec76dd186f4d065df8","dweb:/ipfs/QmYHMMntK4LU4RV6LpveGiXBaNX2KqWiRYj7gLw1ghNcMF"],"license":"MIT"},"src/core/interfaces/IERC165.sol":{"keccak256":"0xa59503f31a525510655f247c0a4c34cdd86abab872a352be5b3046c11a6cdd10","urls":["bzz-raw://2adc6f756c4a5be9bcfff406978ce83f4a954e09d60427a56d6feabedff02473","dweb:/ipfs/QmUnVA9DFEDcdzcNoxJiv1CGSouJUabVqsPQx2kYn6ied7"],"license":"MIT"},"src/core/utils/ConcreteRoles.sol":{"keccak256":"0x834b8b3135ce0a78504b6e694c591154cf96866e393bf984ae6b9567ff4c301e","urls":["bzz-raw://56c3714398f1d61f9bd3c4d6834b42e353f92f8086ab5fc093d8ca2259248aab","dweb:/ipfs/QmcQhxiL68z3KSM7gt9MgqdU9FhfhPZFC9kHpmWwQWko72"],"license":"MIT"},"src/core/utils/OnlyRole.sol":{"keccak256":"0xc7b59881a2962c97abe8f64185e4da7860fd6ccb4aa493fc8810bc212047fa11","urls":["bzz-raw://b5e443638bfdeecf1ed9814aa27babade038c1698d4246a48d3f63876d22876a","dweb:/ipfs/QmYF4rsVmFBqA6pqzaE6eGsQcmSpdAARBDMcnKBq56rmWN"],"license":"MIT"},"src/earn/utils/implementations/helpers/interfaces/ILiquidityProviderBase.sol":{"keccak256":"0x6bf072d7a53a1b4ceeaa2532af6d2d44252305da3528610db3181816f5bd1d5f","urls":["bzz-raw://0d66127d86ad97963a1852c62a0a10cc919a358e18c112afc7019cfa9d442980","dweb:/ipfs/QmSj9San6V8KRhMg4mRR7FdEHRLWHbCqv8bx1dq1sorpkj"],"license":"MIT"},"src/helpers/Enum.sol":{"keccak256":"0xf4c520ade924eeb17f3b3fa9da23aecf132c9f11bb31f0779801a1a1501f6559","urls":["bzz-raw://a37a6f67da347158542ee316342770ca6dd57585983e35ef8a5d0f97ca74d4c2","dweb:/ipfs/QmTgHfStbrAUKQ7n9VMmESSoA3dQnpBzwVb7eyhVEXCVsh"],"license":"MIT"},"src/helpers/Pointer.sol":{"keccak256":"0x3b644146d98342790cc9ba216df21139c3b94c5df85a7a3256d6b27dac47e24a","urls":["bzz-raw://40dfaf56a5de8d1ebe73f73e4240f5f6d4d7f4d1f70642e669711ea159bae71c","dweb:/ipfs/QmcaEdLXSwtL5UG6oUU76EUK22xtVPtdmv9knLf9j5GpFQ"],"license":"MIT"},"src/helpers/StorageHandler.sol":{"keccak256":"0x4c90d30ebaf1c5cc7f19571e78c0f2fc1209feb33d980c02904689a0e9462c51","urls":["bzz-raw://6836292f6ea9771b37ecab68aa5b14ccdd8aab623198613840d633d7ad78edab","dweb:/ipfs/QmdE7xJvzgAdY1EAQUzVpibWvocnMSPSHxBj6q9dcDAjfa"],"license":"MIT"},"src/helpers/base/BlueprintBase.sol":{"keccak256":"0x248d66f1349e793a1412c13080b179d55c111cb3b9cdb2dae1f63add7442a492","urls":["bzz-raw://aff6c6509e2c53809f3df9bb191836a3c8aa154848d9e1591676ce98033eefb0","dweb:/ipfs/Qme2hLknV91rFfUGFSJfrsHUP84PmBGKozZJ5N6S6jf1WC"],"license":"MIT"},"src/libraries/BorrowEvents.sol":{"keccak256":"0xb33cee7ff7d279563b717b9fee9c24faef33368819add1a674b31ccea0d64822","urls":["bzz-raw://96b52d128362b9a159e0d0d353de964687d736e1825f8564bb2552b0bd310bb7","dweb:/ipfs/QmbsLhoTFXXGetgSX31QzSzWYhvMtD5UR1yfSGBdvvBPXR"],"license":"MIT"},"src/libraries/Security.sol":{"keccak256":"0xe923e6fb7d41db97280dd397b2a364b9b932f28b70d3d65c9d77012c6422da4b","urls":["bzz-raw://d40ed3d07f4bf8e20448712945bf52a0086804751b98a645719ad3ea227b5a3c","dweb:/ipfs/Qmc2d9AkPTqTkWc6GTjKGZGZ6cwTL1hr6egrM5GqGJX5nY"],"license":"MIT"},"src/libraries/StorageKeyLib.sol":{"keccak256":"0x4d7f3284242940561f4a99cecd873f4a44283076a0ea82cd0238c0b9c4e1c2f7","urls":["bzz-raw://e45118f17c1382392ca4bcb27ba5e03956eb52d42a644592b805e09a6050e52f","dweb:/ipfs/QmZjVDv5KVwdzWNiRtonvsiHWRkQkZuiW33HRdq28mT1bq"],"license":"MIT"},"src/libraries/borrowMath/CancelationFeeCalculator.sol":{"keccak256":"0xbcef297fac24166b6d4bb320b5f067265547df3886855fa184b850133627f33c","urls":["bzz-raw://61263b33ac50ee0e3dae6355926bb744ca1f76447d067d36e420d09f9c9bda0e","dweb:/ipfs/Qme6K7v9Liv43SFg7Qh4gykGmDWzJJvP3D6rZQN94bMj6d"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/borrow/blueprints/lender/LenderBlueprint.sol","id":61859,"exportedSymbols":{"BlueprintBase":[71548],"BorrowEventsLib":[74227],"CancelationFeeCalculator":[75561],"ERC20":[45673],"Enum":[71189],"ILoan":[56049],"IProtection":[57273],"LenderBlueprint":[61858],"SafeERC20":[46103],"Security":[75484]},"nodeType":"SourceUnit","src":"31:16773:85","nodes":[{"id":60671,"nodeType":"PragmaDirective","src":"31:23:85","nodes":[],"literals":["solidity","0.8",".20"]},{"id":60673,"nodeType":"ImportDirective","src":"56:49:85","nodes":[],"absolutePath":"src/helpers/Enum.sol","file":"../../../helpers/Enum.sol","nameLocation":"-1:-1:-1","scope":61859,"sourceUnit":71190,"symbolAliases":[{"foreign":{"id":60672,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"65:4:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60675,"nodeType":"ImportDirective","src":"106:59:85","nodes":[],"absolutePath":"src/libraries/Security.sol","file":"../../../libraries/Security.sol","nameLocation":"-1:-1:-1","scope":61859,"sourceUnit":75485,"symbolAliases":[{"foreign":{"id":60674,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"115:8:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60677,"nodeType":"ImportDirective","src":"166:102:85","nodes":[],"absolutePath":"src/libraries/borrowMath/CancelationFeeCalculator.sol","file":"../../../libraries/borrowMath/CancelationFeeCalculator.sol","nameLocation":"-1:-1:-1","scope":61859,"sourceUnit":75562,"symbolAliases":[{"foreign":{"id":60676,"name":"CancelationFeeCalculator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75561,"src":"175:24:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60679,"nodeType":"ImportDirective","src":"269:72:85","nodes":[],"absolutePath":"src/helpers/base/BlueprintBase.sol","file":"../../../helpers/base/BlueprintBase.sol","nameLocation":"-1:-1:-1","scope":61859,"sourceUnit":71549,"symbolAliases":[{"foreign":{"id":60678,"name":"BlueprintBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71548,"src":"278:13:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60681,"nodeType":"ImportDirective","src":"342:82:85","nodes":[],"absolutePath":"src/borrow/actions/protection/interfaces/IProtection.sol","file":"../../actions/protection/interfaces/IProtection.sol","nameLocation":"-1:-1:-1","scope":61859,"sourceUnit":57274,"symbolAliases":[{"foreign":{"id":60680,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"351:11:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60683,"nodeType":"ImportDirective","src":"425:64:85","nodes":[],"absolutePath":"src/borrow/actions/loan/interfaces/ILoan.sol","file":"../../actions/loan/interfaces/ILoan.sol","nameLocation":"-1:-1:-1","scope":61859,"sourceUnit":56050,"symbolAliases":[{"foreign":{"id":60682,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"434:5:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60685,"nodeType":"ImportDirective","src":"490:95:85","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"../../../../lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":61859,"sourceUnit":45674,"symbolAliases":[{"foreign":{"id":60684,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45673,"src":"499:5:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60687,"nodeType":"ImportDirective","src":"586:109:85","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"../../../../lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":61859,"sourceUnit":46104,"symbolAliases":[{"foreign":{"id":60686,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46103,"src":"595:9:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":60689,"nodeType":"ImportDirective","src":"696:70:85","nodes":[],"absolutePath":"src/libraries/BorrowEvents.sol","file":"../../../libraries/BorrowEvents.sol","nameLocation":"-1:-1:-1","scope":61859,"sourceUnit":74228,"symbolAliases":[{"foreign":{"id":60688,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"705:15:85","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":61858,"nodeType":"ContractDefinition","src":"768:16035:85","nodes":[{"id":60695,"nodeType":"UsingForDirective","src":"816:26:85","nodes":[],"global":false,"libraryName":{"id":60692,"name":"SafeERC20","nameLocations":["822:9:85"],"nodeType":"IdentifierPath","referencedDeclaration":46103,"src":"822:9:85"},"typeName":{"id":60694,"nodeType":"UserDefinedTypeName","pathNode":{"id":60693,"name":"ERC20","nameLocations":["836:5:85"],"nodeType":"IdentifierPath","referencedDeclaration":45673,"src":"836:5:85"},"referencedDeclaration":45673,"src":"836:5:85","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"}}},{"id":60704,"nodeType":"FunctionDefinition","src":"848:73:85","nodes":[],"body":{"id":60703,"nodeType":"Block","src":"918:3:85","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":60700,"name":"concreteStorage_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60697,"src":"900:16:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":60701,"kind":"baseConstructorSpecifier","modifierName":{"id":60699,"name":"BlueprintBase","nameLocations":["886:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"886:13:85"},"nodeType":"ModifierInvocation","src":"886:31:85"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":60698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60697,"mutability":"mutable","name":"concreteStorage_","nameLocation":"868:16:85","nodeType":"VariableDeclaration","scope":60704,"src":"860:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60696,"name":"address","nodeType":"ElementaryTypeName","src":"860:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"859:26:85"},"returnParameters":{"id":60702,"nodeType":"ParameterList","parameters":[],"src":"918:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":60810,"nodeType":"FunctionDefinition","src":"1171:1473:85","nodes":[],"body":{"id":60809,"nodeType":"Block","src":"1403:1241:85","nodes":[],"statements":[{"assignments":[60722],"declarations":[{"constant":false,"id":60722,"mutability":"mutable","name":"key","nameLocation":"1421:3:85","nodeType":"VariableDeclaration","scope":60809,"src":"1413:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1413:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60732,"initialValue":{"arguments":[{"id":60724,"name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71276,"src":"1437:41:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":60727,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60711,"src":"1491:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60728,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60709,"src":"1502:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60729,"name":"loandId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60715,"src":"1515:8:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60725,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1480:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60726,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1484:6:85","memberName":"encode","nodeType":"MemberAccess","src":"1480:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1480:44:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60723,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"1427:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1427:98:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1413:112:85"},{"assignments":[60734],"declarations":[{"constant":false,"id":60734,"mutability":"mutable","name":"userToLender","nameLocation":"1543:12:85","nodeType":"VariableDeclaration","scope":60809,"src":"1535:20:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60733,"name":"address","nodeType":"ElementaryTypeName","src":"1535:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":60739,"initialValue":{"arguments":[{"id":60737,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60722,"src":"1585:3:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60735,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"1558:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1574:10:85","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"1558:26:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":60738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1558:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1535:54:85"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":60745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":60740,"name":"userToLender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60734,"src":"1603:12:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"307830","id":60743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1627:3:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":60742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1619:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60741,"name":"address","nodeType":"ElementaryTypeName","src":"1619:7:85","typeDescriptions":{}}},"id":60744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1619:12:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1603:28:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60801,"nodeType":"IfStatement","src":"1599:968:85","trueBody":{"id":60800,"nodeType":"Block","src":"1633:934:85","statements":[{"assignments":[60747],"declarations":[{"constant":false,"id":60747,"mutability":"mutable","name":"lenderImplementation","nameLocation":"1796:20:85","nodeType":"VariableDeclaration","scope":60800,"src":"1788:28:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60746,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":60758,"initialValue":{"arguments":[{"arguments":[{"hexValue":"416464726573732e496d706c656d656e746174696f6e73","id":60751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1872:25:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_36068b0e46cccbb3af82d7e956152cfeed8fadcf9c36079f93f16961103dc891","typeString":"literal_string \"Address.Implementations\""},"value":"Address.Implementations"},{"arguments":[{"id":60754,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60709,"src":"1910:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":60752,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1899:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1903:6:85","memberName":"encode","nodeType":"MemberAccess","src":"1899:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1899:23:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_36068b0e46cccbb3af82d7e956152cfeed8fadcf9c36079f93f16961103dc891","typeString":"literal_string \"Address.Implementations\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60750,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"1862:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1862:61:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60748,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"1835:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1851:10:85","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"1835:26:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":60757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1835:89:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1788:136:85"},{"assignments":[60760],"declarations":[{"constant":false,"id":60760,"mutability":"mutable","name":"initData","nameLocation":"1951:8:85","nodeType":"VariableDeclaration","scope":60800,"src":"1938:21:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60759,"name":"bytes","nodeType":"ElementaryTypeName","src":"1938:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60769,"initialValue":{"arguments":[{"hexValue":"696e697469616c697a65286164647265737329","id":60763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1986:21:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d66de8473e8f74cb05df264ee8262da16b56717ef1f05d73bfdcea3adc85e5","typeString":"literal_string \"initialize(address)\""},"value":"initialize(address)"},{"arguments":[{"id":60766,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"2017:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}],"id":60765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2009:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60764,"name":"address","nodeType":"ElementaryTypeName","src":"2009:7:85","typeDescriptions":{}}},"id":60767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2009:24:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d66de8473e8f74cb05df264ee8262da16b56717ef1f05d73bfdcea3adc85e5","typeString":"literal_string \"initialize(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":60761,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1962:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1966:19:85","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1962:23:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":60768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1962:72:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1938:96:85"},{"assignments":[60771],"declarations":[{"constant":false,"id":60771,"mutability":"mutable","name":"createLenderData","nameLocation":"2062:16:85","nodeType":"VariableDeclaration","scope":60800,"src":"2049:29:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60770,"name":"bytes","nodeType":"ElementaryTypeName","src":"2049:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60783,"initialValue":{"arguments":[{"hexValue":"636c6f6e65436f6e747261637428616464726573732c737472696e672c737472696e672c616464726573732c626f6f6c2c62797465732c75696e7432353629","id":60774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2122:65:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_89017b78442028f654d3bde5778030e5856daf2036a5310f40540d7beda646a6","typeString":"literal_string \"cloneContract(address,string,string,address,bool,bytes,uint256)\""},"value":"cloneContract(address,string,string,address,bool,bytes,uint256)"},{"id":60775,"name":"lenderImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60747,"src":"2205:20:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60776,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60709,"src":"2243:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"","id":60777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2272:2:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"id":60778,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60711,"src":"2292:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":60779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2319:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":60780,"name":"initData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60760,"src":"2341:8:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":60781,"name":"loandId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60715,"src":"2367:8:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_89017b78442028f654d3bde5778030e5856daf2036a5310f40540d7beda646a6","typeString":"literal_string \"cloneContract(address,string,string,address,bool,bytes,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60772,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2081:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2085:19:85","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2081:23:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":60782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2081:308:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2049:340:85"},{"assignments":[60785],"declarations":[{"constant":false,"id":60785,"mutability":"mutable","name":"success","nameLocation":"2408:7:85","nodeType":"VariableDeclaration","scope":60800,"src":"2403:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":60784,"name":"bool","nodeType":"ElementaryTypeName","src":"2403:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":60794,"initialValue":{"arguments":[{"hexValue":"466163746f7279416374696f6e","id":60787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2443:15:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_09c05d52c008f69184ed43961f870b2c79130b17a22b7a40ab3b656aa826d2e4","typeString":"literal_string \"FactoryAction\""},"value":"FactoryAction"},{"id":60788,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60707,"src":"2460:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":60789,"name":"createLenderData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60771,"src":"2468:16:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":60790,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"2486:4:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":60791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2491:9:85","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"2486:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":60792,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2501:4:85","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"2486:19:85","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_09c05d52c008f69184ed43961f870b2c79130b17a22b7a40ab3b656aa826d2e4","typeString":"literal_string \"FactoryAction\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":60786,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"2418:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":60793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2418:88:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"2403:103:85"},{"expression":{"arguments":[{"id":60796,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60785,"src":"2528:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"457865637574696f6e206661696c6564","id":60797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2537:18:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""},"value":"Execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""}],"id":60795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2520:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2520:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60799,"nodeType":"ExpressionStatement","src":"2520:36:85"}]}},{"expression":{"arguments":[{"id":60803,"name":"supplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60713,"src":"2592:10:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":60804,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60711,"src":"2604:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60805,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60709,"src":"2615:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60806,"name":"loandId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60715,"src":"2628:8:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60802,"name":"supplyToLender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60989,"src":"2577:14:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bytes memory,address,string memory,uint256)"}},"id":60807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2577:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60808,"nodeType":"ExpressionStatement","src":"2577:60:85"}]},"documentation":{"id":60705,"nodeType":"StructuredDocumentation","src":"927:239:85","text":" @param value_ Ether value\n @param lenderName_ The name of the lender\n @param onBehalf_ The user who we are onboarding\n @param supplyData The supply data for the lender\n @param loandId_ The loan Id"},"functionSelector":"51de0372","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":60718,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"1380:17:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":60719,"kind":"modifierInvocation","modifierName":{"id":60717,"name":"onlyRole","nameLocations":["1371:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"1371:8:85"},"nodeType":"ModifierInvocation","src":"1371:27:85"}],"name":"initiateSupply","nameLocation":"1180:14:85","parameters":{"id":60716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60707,"mutability":"mutable","name":"value_","nameLocation":"1212:6:85","nodeType":"VariableDeclaration","scope":60810,"src":"1204:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60706,"name":"uint256","nodeType":"ElementaryTypeName","src":"1204:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60709,"mutability":"mutable","name":"lenderName_","nameLocation":"1242:11:85","nodeType":"VariableDeclaration","scope":60810,"src":"1228:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60708,"name":"string","nodeType":"ElementaryTypeName","src":"1228:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":60711,"mutability":"mutable","name":"onBehalf_","nameLocation":"1271:9:85","nodeType":"VariableDeclaration","scope":60810,"src":"1263:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60710,"name":"address","nodeType":"ElementaryTypeName","src":"1263:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60713,"mutability":"mutable","name":"supplyData","nameLocation":"1303:10:85","nodeType":"VariableDeclaration","scope":60810,"src":"1290:23:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60712,"name":"bytes","nodeType":"ElementaryTypeName","src":"1290:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":60715,"mutability":"mutable","name":"loandId_","nameLocation":"1331:8:85","nodeType":"VariableDeclaration","scope":60810,"src":"1323:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60714,"name":"uint256","nodeType":"ElementaryTypeName","src":"1323:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1194:151:85"},"returnParameters":{"id":60720,"nodeType":"ParameterList","parameters":[],"src":"1403:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":60989,"nodeType":"FunctionDefinition","src":"3013:1853:85","nodes":[],"body":{"id":60988,"nodeType":"Block","src":"3184:1682:85","nodes":[],"statements":[{"assignments":[60823,60825,null,null],"declarations":[{"constant":false,"id":60823,"mutability":"mutable","name":"collateralToken","nameLocation":"3203:15:85","nodeType":"VariableDeclaration","scope":60988,"src":"3195:23:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60822,"name":"address","nodeType":"ElementaryTypeName","src":"3195:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60825,"mutability":"mutable","name":"amount","nameLocation":"3228:6:85","nodeType":"VariableDeclaration","scope":60988,"src":"3220:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60824,"name":"uint256","nodeType":"ElementaryTypeName","src":"3220:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},null,null],"id":60839,"initialValue":{"arguments":[{"id":60828,"name":"supplyData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60813,"src":"3251:11:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":60830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3265:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60829,"name":"address","nodeType":"ElementaryTypeName","src":"3265:7:85","typeDescriptions":{}}},{"id":60832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3274:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":60831,"name":"uint256","nodeType":"ElementaryTypeName","src":"3274:7:85","typeDescriptions":{}}},{"id":60834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3283:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60833,"name":"address","nodeType":"ElementaryTypeName","src":"3283:7:85","typeDescriptions":{}}},{"id":60836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3292:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60835,"name":"address","nodeType":"ElementaryTypeName","src":"3292:7:85","typeDescriptions":{}}}],"id":60837,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3264:36:85","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$","typeString":"tuple(type(address),type(uint256),type(address),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_address_$_$","typeString":"tuple(type(address),type(uint256),type(address),type(address))"}],"expression":{"id":60826,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3240:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3244:6:85","memberName":"decode","nodeType":"MemberAccess","src":"3240:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":60838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3240:61:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_uint256_$_t_address_payable_$_t_address_payable_$","typeString":"tuple(address payable,uint256,address payable,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"3194:107:85"},{"assignments":[60841],"declarations":[{"constant":false,"id":60841,"mutability":"mutable","name":"key","nameLocation":"3319:3:85","nodeType":"VariableDeclaration","scope":60988,"src":"3311:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60840,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3311:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60850,"initialValue":{"arguments":[{"id":60843,"name":"TOKEN_LENDER_NAME_COLLATERAL_APPROVED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71336,"src":"3335:37:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":60846,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60817,"src":"3385:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60847,"name":"collateralToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60823,"src":"3398:15:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":60844,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3374:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3378:6:85","memberName":"encode","nodeType":"MemberAccess","src":"3374:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3374:40:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60842,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"3325:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3325:90:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3311:104:85"},{"expression":{"arguments":[{"arguments":[{"id":60854,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60841,"src":"3457:3:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60852,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"3433:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3449:7:85","memberName":"getBool","nodeType":"MemberAccess","referencedDeclaration":67310,"src":"3433:23:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":60855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3433:28:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a204e6f7420616e20617070726f76656420636f6c6c61746572616c2074797065","id":60856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3463:38:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_b167d14ad95272fcea6a06abc6c9be4fa092b91275831cba709ff0af93b0aa81","typeString":"literal_string \"ERR: Not an approved collateral type\""},"value":"ERR: Not an approved collateral type"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b167d14ad95272fcea6a06abc6c9be4fa092b91275831cba709ff0af93b0aa81","typeString":"literal_string \"ERR: Not an approved collateral type\""}],"id":60851,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3425:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3425:77:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60858,"nodeType":"ExpressionStatement","src":"3425:77:85"},{"assignments":[60860],"declarations":[{"constant":false,"id":60860,"mutability":"mutable","name":"protectionKey","nameLocation":"3521:13:85","nodeType":"VariableDeclaration","scope":60988,"src":"3513:21:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":60859,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3513:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":60869,"initialValue":{"arguments":[{"id":60862,"name":"USER_ID_PROTECTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71234,"src":"3547:18:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":60865,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60815,"src":"3578:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60866,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60819,"src":"3589:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60863,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3567:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3571:6:85","memberName":"encode","nodeType":"MemberAccess","src":"3567:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":60867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3567:30:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":60861,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"3537:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":60868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3537:61:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3513:85:85"},{"assignments":[60871],"declarations":[{"constant":false,"id":60871,"mutability":"mutable","name":"protectionData","nameLocation":"3621:14:85","nodeType":"VariableDeclaration","scope":60988,"src":"3608:27:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60870,"name":"bytes","nodeType":"ElementaryTypeName","src":"3608:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60876,"initialValue":{"arguments":[{"id":60874,"name":"protectionKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60860,"src":"3663:13:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":60872,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"3638:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":60873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3654:8:85","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"3638:24:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":60875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3638:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3608:69:85"},{"eventCall":{"arguments":[{"id":60880,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60817,"src":"3715:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":60882,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60815,"src":"3747:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60883,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60817,"src":"3758:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60884,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60819,"src":"3771:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60881,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"3728:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":60885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3728:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60886,"name":"supplyData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60813,"src":"3781:11:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":60877,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"3692:15:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":60879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3708:6:85","memberName":"Supply","nodeType":"MemberAccess","referencedDeclaration":73996,"src":"3692:22:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,address,bytes memory)"}},"id":60887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3692:101:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60888,"nodeType":"EmitStatement","src":"3687:106:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":60892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":60889,"name":"protectionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60871,"src":"3865:14:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":60890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3880:6:85","memberName":"length","nodeType":"MemberAccess","src":"3865:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":60891,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3889:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3865:25:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60915,"nodeType":"IfStatement","src":"3861:255:85","trueBody":{"id":60914,"nodeType":"Block","src":"3892:224:85","statements":[{"assignments":[60897],"declarations":[{"constant":false,"id":60897,"mutability":"mutable","name":"protection","nameLocation":"3936:10:85","nodeType":"VariableDeclaration","scope":60914,"src":"3906:40:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection"},"typeName":{"id":60896,"nodeType":"UserDefinedTypeName","pathNode":{"id":60895,"name":"IProtection.Protection","nameLocations":["3906:11:85","3918:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":57250,"src":"3906:22:85"},"referencedDeclaration":57250,"src":"3906:22:85","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_storage_ptr","typeString":"struct IProtection.Protection"}},"visibility":"internal"}],"id":60905,"initialValue":{"arguments":[{"id":60900,"name":"protectionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60871,"src":"3960:14:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":60901,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"3977:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":60902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3989:10:85","memberName":"Protection","nodeType":"MemberAccess","referencedDeclaration":57250,"src":"3977:22:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}}],"id":60903,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3976:24:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}],"expression":{"id":60898,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3949:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3953:6:85","memberName":"decode","nodeType":"MemberAccess","src":"3949:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":60904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3949:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection memory"}},"nodeType":"VariableDeclarationStatement","src":"3906:95:85"},{"condition":{"expression":{"id":60906,"name":"protection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60897,"src":"4019:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection memory"}},"id":60907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4030:6:85","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":57240,"src":"4019:17:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":60913,"nodeType":"IfStatement","src":"4015:91:85","trueBody":{"id":60912,"nodeType":"Block","src":"4038:68:85","statements":[{"expression":{"arguments":[{"hexValue":"4552523a2050726f74656374696f6e20697320616374697665","id":60909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4063:27:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_b885b9577d1d8a32ac5826964c048a05e38571f6c1eedfcc15e7f50de265cb59","typeString":"literal_string \"ERR: Protection is active\""},"value":"ERR: Protection is active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b885b9577d1d8a32ac5826964c048a05e38571f6c1eedfcc15e7f50de265cb59","typeString":"literal_string \"ERR: Protection is active\""}],"id":60908,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4056:6:85","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":60910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4056:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60911,"nodeType":"ExpressionStatement","src":"4056:35:85"}]}}]}},{"assignments":[60918],"declarations":[{"constant":false,"id":60918,"mutability":"mutable","name":"token","nameLocation":"4131:5:85","nodeType":"VariableDeclaration","scope":60988,"src":"4125:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"},"typeName":{"id":60917,"nodeType":"UserDefinedTypeName","pathNode":{"id":60916,"name":"ERC20","nameLocations":["4125:5:85"],"nodeType":"IdentifierPath","referencedDeclaration":45673,"src":"4125:5:85"},"referencedDeclaration":45673,"src":"4125:5:85","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"}},"visibility":"internal"}],"id":60922,"initialValue":{"arguments":[{"id":60920,"name":"collateralToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60823,"src":"4145:15:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60919,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45673,"src":"4139:5:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$45673_$","typeString":"type(contract ERC20)"}},"id":60921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4139:22:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"}},"nodeType":"VariableDeclarationStatement","src":"4125:36:85"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":60929,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60815,"src":"4233:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60930,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60817,"src":"4244:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60931,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60819,"src":"4257:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60928,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"4214:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":60932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4206:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60926,"name":"address","nodeType":"ElementaryTypeName","src":"4206:7:85","typeDescriptions":{}}},"id":60933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4206:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60934,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60825,"src":"4268:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60924,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60918,"src":"4192:5:85","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"}},"id":60925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4198:7:85","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":45324,"src":"4192:13:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":60935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4192:83:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20416c6c6f77616e6365206e6f7420736574","id":60936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4289:24:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_092d280a4dad281e04a6adf3d37c54380740642da35fed079e06518aeb185122","typeString":"literal_string \"ERR: Allowance not set\""},"value":"ERR: Allowance not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_092d280a4dad281e04a6adf3d37c54380740642da35fed079e06518aeb185122","typeString":"literal_string \"ERR: Allowance not set\""}],"id":60923,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4171:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4171:152:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60938,"nodeType":"ExpressionStatement","src":"4171:152:85"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":60945,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60815,"src":"4396:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60946,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60817,"src":"4407:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60947,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60819,"src":"4420:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60944,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"4377:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":60948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4377:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4369:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60942,"name":"address","nodeType":"ElementaryTypeName","src":"4369:7:85","typeDescriptions":{}}},"id":60949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4369:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60950,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60825,"src":"4431:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":60940,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60918,"src":"4354:5:85","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"}},"id":60941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4360:8:85","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":45283,"src":"4354:14:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":60951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4354:84:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205472616e73666572206661696c6564","id":60952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4440:22:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_95a9fab497e20edecd9c679f825caa25944d436f83f47f1e3e860eecb8a731fe","typeString":"literal_string \"ERR: Transfer failed\""},"value":"ERR: Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95a9fab497e20edecd9c679f825caa25944d436f83f47f1e3e860eecb8a731fe","typeString":"literal_string \"ERR: Transfer failed\""}],"id":60939,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4333:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4333:139:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60954,"nodeType":"ExpressionStatement","src":"4333:139:85"},{"assignments":[60956],"declarations":[{"constant":false,"id":60956,"mutability":"mutable","name":"supData","nameLocation":"4495:7:85","nodeType":"VariableDeclaration","scope":60988,"src":"4482:20:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60955,"name":"bytes","nodeType":"ElementaryTypeName","src":"4482:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":60971,"initialValue":{"arguments":[{"hexValue":"737570706c792862797465732c75696e743235362c6164647265737329","id":60959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4542:31:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_b12f7774adaebe2c7722e2d9e8fff7bbf7e1c62a83121d29140c21b339f41e49","typeString":"literal_string \"supply(bytes,uint256,address)\""},"value":"supply(bytes,uint256,address)"},{"id":60960,"name":"supplyData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60813,"src":"4587:11:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":60961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4612:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"arguments":[{"id":60965,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60815,"src":"4654:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":60966,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60817,"src":"4665:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":60967,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60819,"src":"4678:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":60964,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"4635:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":60968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4635:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":60963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4627:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":60962,"name":"address","nodeType":"ElementaryTypeName","src":"4627:7:85","typeDescriptions":{}}},"id":60969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4627:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b12f7774adaebe2c7722e2d9e8fff7bbf7e1c62a83121d29140c21b339f41e49","typeString":"literal_string \"supply(bytes,uint256,address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":60957,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4505:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":60958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4509:19:85","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4505:23:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":60970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4505:192:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4482:215:85"},{"assignments":[60973],"declarations":[{"constant":false,"id":60973,"mutability":"mutable","name":"success","nameLocation":"4712:7:85","nodeType":"VariableDeclaration","scope":60988,"src":"4707:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":60972,"name":"bool","nodeType":"ElementaryTypeName","src":"4707:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":60982,"initialValue":{"arguments":[{"hexValue":"537570706c79416374696f6e","id":60975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4747:14:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_abb8274d532841fbcea076fe6b40f8cf46a78317e505f65db89a5c9426846240","typeString":"literal_string \"SupplyAction\""},"value":"SupplyAction"},{"hexValue":"30","id":60976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4763:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":60977,"name":"supData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60956,"src":"4766:7:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":60978,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"4775:4:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":60979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4780:9:85","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"4775:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":60980,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4790:4:85","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"4775:19:85","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abb8274d532841fbcea076fe6b40f8cf46a78317e505f65db89a5c9426846240","typeString":"literal_string \"SupplyAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":60974,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"4722:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":60981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4722:73:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4707:88:85"},{"expression":{"arguments":[{"id":60984,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60973,"src":"4813:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20537570706c79416374696f6e20657865637574696f6e206661696c6564","id":60985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4822:36:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e43b15588bc4385b5b4474e2f3b41a7d5bf2a566067de7955de24da5633733b","typeString":"literal_string \"ERR: SupplyAction execution failed\""},"value":"ERR: SupplyAction execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9e43b15588bc4385b5b4474e2f3b41a7d5bf2a566067de7955de24da5633733b","typeString":"literal_string \"ERR: SupplyAction execution failed\""}],"id":60983,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4805:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":60986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4805:54:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":60987,"nodeType":"ExpressionStatement","src":"4805:54:85"}]},"documentation":{"id":60811,"nodeType":"StructuredDocumentation","src":"2650:358:85","text":" @notice The supply lender function is a universal function to supply collateral to a user specified lender\n @param supplyData_ The supply data for the lender\n @param onBehalf_ The user who we are supplying collateral for\n @param lenderName_ The name of the lender\n @param loanId_ The unique Id for a 1 specific loan"},"implemented":true,"kind":"function","modifiers":[],"name":"supplyToLender","nameLocation":"3022:14:85","parameters":{"id":60820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60813,"mutability":"mutable","name":"supplyData_","nameLocation":"3059:11:85","nodeType":"VariableDeclaration","scope":60989,"src":"3046:24:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60812,"name":"bytes","nodeType":"ElementaryTypeName","src":"3046:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":60815,"mutability":"mutable","name":"onBehalf_","nameLocation":"3088:9:85","nodeType":"VariableDeclaration","scope":60989,"src":"3080:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60814,"name":"address","nodeType":"ElementaryTypeName","src":"3080:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60817,"mutability":"mutable","name":"lenderName_","nameLocation":"3121:11:85","nodeType":"VariableDeclaration","scope":60989,"src":"3107:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60816,"name":"string","nodeType":"ElementaryTypeName","src":"3107:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":60819,"mutability":"mutable","name":"loanId_","nameLocation":"3150:7:85","nodeType":"VariableDeclaration","scope":60989,"src":"3142:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60818,"name":"uint256","nodeType":"ElementaryTypeName","src":"3142:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3036:127:85"},"returnParameters":{"id":60821,"nodeType":"ParameterList","parameters":[],"src":"3184:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":61098,"nodeType":"FunctionDefinition","src":"5217:1274:85","nodes":[],"body":{"id":61097,"nodeType":"Block","src":"5441:1050:85","nodes":[],"statements":[{"assignments":[61007],"declarations":[{"constant":false,"id":61007,"mutability":"mutable","name":"protectionKey","nameLocation":"5459:13:85","nodeType":"VariableDeclaration","scope":61097,"src":"5451:21:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5451:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61016,"initialValue":{"arguments":[{"id":61009,"name":"USER_ID_PROTECTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71234,"src":"5485:18:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61012,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60996,"src":"5516:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61013,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61000,"src":"5527:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61010,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5505:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5509:6:85","memberName":"encode","nodeType":"MemberAccess","src":"5505:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5505:30:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61008,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"5475:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5475:61:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5451:85:85"},{"assignments":[61018],"declarations":[{"constant":false,"id":61018,"mutability":"mutable","name":"protectionData","nameLocation":"5559:14:85","nodeType":"VariableDeclaration","scope":61097,"src":"5546:27:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61017,"name":"bytes","nodeType":"ElementaryTypeName","src":"5546:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61023,"initialValue":{"arguments":[{"id":61021,"name":"protectionKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61007,"src":"5601:13:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61019,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"5576:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5592:8:85","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"5576:24:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":61022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5576:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5546:69:85"},{"eventCall":{"arguments":[{"id":61027,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60998,"src":"5667:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61029,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60996,"src":"5699:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61030,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60998,"src":"5710:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61031,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61000,"src":"5723:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61028,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"5680:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":61032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5680:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61033,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60996,"src":"5733:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61034,"name":"borrowData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60992,"src":"5744:11:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":61024,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"5631:15:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":61026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5647:6:85","memberName":"Borrow","nodeType":"MemberAccess","referencedDeclaration":74006,"src":"5631:22:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,address,address,bytes memory)"}},"id":61035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5631:134:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61036,"nodeType":"EmitStatement","src":"5626:139:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":61037,"name":"protectionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61018,"src":"5836:14:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":61038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5851:6:85","memberName":"length","nodeType":"MemberAccess","src":"5836:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":61039,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5860:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5836:25:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61063,"nodeType":"IfStatement","src":"5832:255:85","trueBody":{"id":61062,"nodeType":"Block","src":"5863:224:85","statements":[{"assignments":[61045],"declarations":[{"constant":false,"id":61045,"mutability":"mutable","name":"protection","nameLocation":"5907:10:85","nodeType":"VariableDeclaration","scope":61062,"src":"5877:40:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection"},"typeName":{"id":61044,"nodeType":"UserDefinedTypeName","pathNode":{"id":61043,"name":"IProtection.Protection","nameLocations":["5877:11:85","5889:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":57250,"src":"5877:22:85"},"referencedDeclaration":57250,"src":"5877:22:85","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_storage_ptr","typeString":"struct IProtection.Protection"}},"visibility":"internal"}],"id":61053,"initialValue":{"arguments":[{"id":61048,"name":"protectionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61018,"src":"5931:14:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":61049,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"5948:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":61050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5960:10:85","memberName":"Protection","nodeType":"MemberAccess","referencedDeclaration":57250,"src":"5948:22:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}}],"id":61051,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5947:24:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}],"expression":{"id":61046,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5920:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61047,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5924:6:85","memberName":"decode","nodeType":"MemberAccess","src":"5920:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":61052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5920:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection memory"}},"nodeType":"VariableDeclarationStatement","src":"5877:95:85"},{"condition":{"expression":{"id":61054,"name":"protection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61045,"src":"5990:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection memory"}},"id":61055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6001:6:85","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":57240,"src":"5990:17:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61061,"nodeType":"IfStatement","src":"5986:91:85","trueBody":{"id":61060,"nodeType":"Block","src":"6009:68:85","statements":[{"expression":{"arguments":[{"hexValue":"4552523a2050726f74656374696f6e20697320616374697665","id":61057,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6034:27:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_b885b9577d1d8a32ac5826964c048a05e38571f6c1eedfcc15e7f50de265cb59","typeString":"literal_string \"ERR: Protection is active\""},"value":"ERR: Protection is active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b885b9577d1d8a32ac5826964c048a05e38571f6c1eedfcc15e7f50de265cb59","typeString":"literal_string \"ERR: Protection is active\""}],"id":61056,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6027:6:85","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":61058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6027:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61059,"nodeType":"ExpressionStatement","src":"6027:35:85"}]}}]}},{"assignments":[61065],"declarations":[{"constant":false,"id":61065,"mutability":"mutable","name":"borrowData","nameLocation":"6109:10:85","nodeType":"VariableDeclaration","scope":61097,"src":"6096:23:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61064,"name":"bytes","nodeType":"ElementaryTypeName","src":"6096:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61080,"initialValue":{"arguments":[{"hexValue":"626f72726f772862797465732c75696e743235362c6164647265737329","id":61068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6159:31:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ab03673a100b939631c9111d8c254edf11a15776ba9c14db3a67e08d1e430b8","typeString":"literal_string \"borrow(bytes,uint256,address)\""},"value":"borrow(bytes,uint256,address)"},{"id":61069,"name":"borrowData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60992,"src":"6204:11:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":61070,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60994,"src":"6229:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":61074,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60996,"src":"6276:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61075,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":60998,"src":"6287:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61076,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61000,"src":"6300:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61073,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"6257:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":61077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6257:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6249:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61071,"name":"address","nodeType":"ElementaryTypeName","src":"6249:7:85","typeDescriptions":{}}},"id":61078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6249:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ab03673a100b939631c9111d8c254edf11a15776ba9c14db3a67e08d1e430b8","typeString":"literal_string \"borrow(bytes,uint256,address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":61066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6122:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6126:19:85","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6122:23:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":61079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6122:197:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"6096:223:85"},{"assignments":[61082],"declarations":[{"constant":false,"id":61082,"mutability":"mutable","name":"success","nameLocation":"6334:7:85","nodeType":"VariableDeclaration","scope":61097,"src":"6329:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61081,"name":"bool","nodeType":"ElementaryTypeName","src":"6329:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":61091,"initialValue":{"arguments":[{"hexValue":"426f72726f77416374696f6e","id":61084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6369:14:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f76a4615eccda25e55f1b684c722c65745a1973a52a9535555929f6e6333f56","typeString":"literal_string \"BorrowAction\""},"value":"BorrowAction"},{"hexValue":"30","id":61085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6385:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":61086,"name":"borrowData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61065,"src":"6388:10:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":61087,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"6400:4:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":61088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6405:9:85","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"6400:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":61089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6415:4:85","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"6400:19:85","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f76a4615eccda25e55f1b684c722c65745a1973a52a9535555929f6e6333f56","typeString":"literal_string \"BorrowAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":61083,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"6344:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":61090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6344:76:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6329:91:85"},{"expression":{"arguments":[{"id":61093,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61082,"src":"6438:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20426f72726f77416374696f6e20657865637574696f6e206661696c6564","id":61094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6447:36:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c2063eecac9a1e271e785fca2a0db001481e3a19ab28af81adc00569fc314","typeString":"literal_string \"ERR: BorrowAction execution failed\""},"value":"ERR: BorrowAction execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6f7c2063eecac9a1e271e785fca2a0db001481e3a19ab28af81adc00569fc314","typeString":"literal_string \"ERR: BorrowAction execution failed\""}],"id":61092,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6430:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:54:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61096,"nodeType":"ExpressionStatement","src":"6430:54:85"}]},"documentation":{"id":60990,"nodeType":"StructuredDocumentation","src":"4872:340:85","text":" @notice The borrow function is a universal function to borrow from a specified lender\n @param borrowData_ The borrow data for the lender\n @param value_ Ether value\n @param onBehalf_ The user who we are borrowing for\n @param lenderName_ The name of the lender\n @param loanId_ The user loan id"},"functionSelector":"0d6c8e77","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":61003,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"5418:17:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":61004,"kind":"modifierInvocation","modifierName":{"id":61002,"name":"onlyRole","nameLocations":["5409:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"5409:8:85"},"nodeType":"ModifierInvocation","src":"5409:27:85"}],"name":"borrow","nameLocation":"5226:6:85","parameters":{"id":61001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":60992,"mutability":"mutable","name":"borrowData_","nameLocation":"5255:11:85","nodeType":"VariableDeclaration","scope":61098,"src":"5242:24:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":60991,"name":"bytes","nodeType":"ElementaryTypeName","src":"5242:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":60994,"mutability":"mutable","name":"value_","nameLocation":"5284:6:85","nodeType":"VariableDeclaration","scope":61098,"src":"5276:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60993,"name":"uint256","nodeType":"ElementaryTypeName","src":"5276:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":60996,"mutability":"mutable","name":"onBehalf_","nameLocation":"5308:9:85","nodeType":"VariableDeclaration","scope":61098,"src":"5300:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":60995,"name":"address","nodeType":"ElementaryTypeName","src":"5300:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":60998,"mutability":"mutable","name":"lenderName_","nameLocation":"5341:11:85","nodeType":"VariableDeclaration","scope":61098,"src":"5327:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":60997,"name":"string","nodeType":"ElementaryTypeName","src":"5327:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":61000,"mutability":"mutable","name":"loanId_","nameLocation":"5370:7:85","nodeType":"VariableDeclaration","scope":61098,"src":"5362:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":60999,"name":"uint256","nodeType":"ElementaryTypeName","src":"5362:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5232:151:85"},"returnParameters":{"id":61005,"nodeType":"ParameterList","parameters":[],"src":"5441:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":61265,"nodeType":"FunctionDefinition","src":"6801:1709:85","nodes":[],"body":{"id":61264,"nodeType":"Block","src":"7023:1487:85","nodes":[],"statements":[{"assignments":[null,61116,null,61118],"declarations":[null,{"constant":false,"id":61116,"mutability":"mutable","name":"dentToken","nameLocation":"7044:9:85","nodeType":"VariableDeclaration","scope":61264,"src":"7036:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61115,"name":"address","nodeType":"ElementaryTypeName","src":"7036:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},null,{"constant":false,"id":61118,"mutability":"mutable","name":"debt","nameLocation":"7064:4:85","nodeType":"VariableDeclaration","scope":61264,"src":"7056:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61117,"name":"uint256","nodeType":"ElementaryTypeName","src":"7056:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61132,"initialValue":{"arguments":[{"id":61121,"name":"repayData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61101,"src":"7083:10:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":61123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7096:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61122,"name":"address","nodeType":"ElementaryTypeName","src":"7096:7:85","typeDescriptions":{}}},{"id":61125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7105:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61124,"name":"address","nodeType":"ElementaryTypeName","src":"7105:7:85","typeDescriptions":{}}},{"id":61127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7114:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":61126,"name":"uint256","nodeType":"ElementaryTypeName","src":"7114:7:85","typeDescriptions":{}}},{"id":61129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7123:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":61128,"name":"uint256","nodeType":"ElementaryTypeName","src":"7123:7:85","typeDescriptions":{}}}],"id":61130,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7095:36:85","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(address),type(uint256),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(address),type(uint256),type(uint256))"}],"expression":{"id":61119,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7072:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7076:6:85","memberName":"decode","nodeType":"MemberAccess","src":"7072:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":61131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7072:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_address_payable_$_t_uint256_$_t_uint256_$","typeString":"tuple(address payable,address payable,uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"7033:99:85"},{"assignments":[61134],"declarations":[{"constant":false,"id":61134,"mutability":"mutable","name":"protectionKey","nameLocation":"7151:13:85","nodeType":"VariableDeclaration","scope":61264,"src":"7143:21:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7143:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61143,"initialValue":{"arguments":[{"id":61136,"name":"USER_ID_PROTECTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71234,"src":"7177:18:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61139,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61105,"src":"7208:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61140,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61109,"src":"7219:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61137,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7197:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61138,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7201:6:85","memberName":"encode","nodeType":"MemberAccess","src":"7197:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7197:30:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61135,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"7167:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7167:61:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7143:85:85"},{"assignments":[61145],"declarations":[{"constant":false,"id":61145,"mutability":"mutable","name":"protectionData","nameLocation":"7251:14:85","nodeType":"VariableDeclaration","scope":61264,"src":"7238:27:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61144,"name":"bytes","nodeType":"ElementaryTypeName","src":"7238:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61150,"initialValue":{"arguments":[{"id":61148,"name":"protectionKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61134,"src":"7293:13:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61146,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"7268:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7284:8:85","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"7268:24:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":61149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7268:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7238:69:85"},{"eventCall":{"arguments":[{"id":61154,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61107,"src":"7357:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61156,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61105,"src":"7389:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61157,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61107,"src":"7400:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61158,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61109,"src":"7413:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61155,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"7370:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":61159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7370:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61160,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61105,"src":"7423:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61161,"name":"repayData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61101,"src":"7434:10:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":61151,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"7322:15:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":61153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7338:5:85","memberName":"Repay","nodeType":"MemberAccess","referencedDeclaration":74016,"src":"7322:21:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,address,address,bytes memory)"}},"id":61162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7322:132:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61163,"nodeType":"EmitStatement","src":"7317:137:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":61164,"name":"protectionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61145,"src":"7525:14:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":61165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7540:6:85","memberName":"length","nodeType":"MemberAccess","src":"7525:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":61166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7549:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7525:25:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61191,"nodeType":"IfStatement","src":"7521:256:85","trueBody":{"id":61190,"nodeType":"Block","src":"7552:225:85","statements":[{"assignments":[61172],"declarations":[{"constant":false,"id":61172,"mutability":"mutable","name":"protection","nameLocation":"7596:10:85","nodeType":"VariableDeclaration","scope":61190,"src":"7566:40:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection"},"typeName":{"id":61171,"nodeType":"UserDefinedTypeName","pathNode":{"id":61170,"name":"IProtection.Protection","nameLocations":["7566:11:85","7578:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":57250,"src":"7566:22:85"},"referencedDeclaration":57250,"src":"7566:22:85","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_storage_ptr","typeString":"struct IProtection.Protection"}},"visibility":"internal"}],"id":61180,"initialValue":{"arguments":[{"id":61175,"name":"protectionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61145,"src":"7620:14:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":61176,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"7637:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":61177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7649:10:85","memberName":"Protection","nodeType":"MemberAccess","referencedDeclaration":57250,"src":"7637:22:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}}],"id":61178,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7636:24:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}],"expression":{"id":61173,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7609:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7613:6:85","memberName":"decode","nodeType":"MemberAccess","src":"7609:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":61179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7609:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection memory"}},"nodeType":"VariableDeclarationStatement","src":"7566:95:85"},{"condition":{"expression":{"id":61181,"name":"protection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61172,"src":"7679:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection memory"}},"id":61182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7690:6:85","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":57240,"src":"7679:17:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61189,"nodeType":"IfStatement","src":"7675:92:85","trueBody":{"id":61188,"nodeType":"Block","src":"7698:69:85","statements":[{"expression":{"arguments":[{"id":61184,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61105,"src":"7733:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61185,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61109,"src":"7744:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61183,"name":"cancelProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61380,"src":"7716:16:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":61186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7716:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61187,"nodeType":"ExpressionStatement","src":"7716:36:85"}]}}]}},{"assignments":[61194],"declarations":[{"constant":false,"id":61194,"mutability":"mutable","name":"token","nameLocation":"7792:5:85","nodeType":"VariableDeclaration","scope":61264,"src":"7786:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"},"typeName":{"id":61193,"nodeType":"UserDefinedTypeName","pathNode":{"id":61192,"name":"ERC20","nameLocations":["7786:5:85"],"nodeType":"IdentifierPath","referencedDeclaration":45673,"src":"7786:5:85"},"referencedDeclaration":45673,"src":"7786:5:85","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"}},"visibility":"internal"}],"id":61198,"initialValue":{"arguments":[{"id":61196,"name":"dentToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61116,"src":"7806:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61195,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45673,"src":"7800:5:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$45673_$","typeString":"type(contract ERC20)"}},"id":61197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7800:16:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"}},"nodeType":"VariableDeclarationStatement","src":"7786:30:85"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":61205,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61105,"src":"7888:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61206,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61107,"src":"7899:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61207,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61109,"src":"7912:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61204,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"7869:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":61208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7869:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7861:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61202,"name":"address","nodeType":"ElementaryTypeName","src":"7861:7:85","typeDescriptions":{}}},"id":61209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7861:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61210,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61118,"src":"7923:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61200,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61194,"src":"7847:5:85","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"}},"id":61201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7853:7:85","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":45324,"src":"7847:13:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":61211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7847:81:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20416c6c6f77616e6365206e6f7420736574","id":61212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7930:24:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_092d280a4dad281e04a6adf3d37c54380740642da35fed079e06518aeb185122","typeString":"literal_string \"ERR: Allowance not set\""},"value":"ERR: Allowance not set"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_092d280a4dad281e04a6adf3d37c54380740642da35fed079e06518aeb185122","typeString":"literal_string \"ERR: Allowance not set\""}],"id":61199,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7826:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7826:138:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61214,"nodeType":"ExpressionStatement","src":"7826:138:85"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"id":61221,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61105,"src":"8037:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61222,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61107,"src":"8048:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61223,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61109,"src":"8061:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61220,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"8018:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":61224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8018:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8010:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61218,"name":"address","nodeType":"ElementaryTypeName","src":"8010:7:85","typeDescriptions":{}}},"id":61225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8010:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61226,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61118,"src":"8072:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61216,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61194,"src":"7995:5:85","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$45673","typeString":"contract ERC20"}},"id":61217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8001:8:85","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":45283,"src":"7995:14:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":61227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7995:82:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205472616e73666572206661696c6564","id":61228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8079:22:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_95a9fab497e20edecd9c679f825caa25944d436f83f47f1e3e860eecb8a731fe","typeString":"literal_string \"ERR: Transfer failed\""},"value":"ERR: Transfer failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_95a9fab497e20edecd9c679f825caa25944d436f83f47f1e3e860eecb8a731fe","typeString":"literal_string \"ERR: Transfer failed\""}],"id":61215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7974:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7974:137:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61230,"nodeType":"ExpressionStatement","src":"7974:137:85"},{"assignments":[61232],"declarations":[{"constant":false,"id":61232,"mutability":"mutable","name":"repayData","nameLocation":"8134:9:85","nodeType":"VariableDeclaration","scope":61264,"src":"8121:22:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61231,"name":"bytes","nodeType":"ElementaryTypeName","src":"8121:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61247,"initialValue":{"arguments":[{"hexValue":"72657061792862797465732c75696e743235362c6164647265737329","id":61235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8183:30:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_d09d1c0cd5235b402c265950dd22e16bfd7ff357f3211220aad5565d313a76e3","typeString":"literal_string \"repay(bytes,uint256,address)\""},"value":"repay(bytes,uint256,address)"},{"id":61236,"name":"repayData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61101,"src":"8227:10:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":61237,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61103,"src":"8251:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"id":61241,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61105,"src":"8298:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61242,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61107,"src":"8309:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61243,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61109,"src":"8322:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61240,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"8279:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":61244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8279:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8271:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61238,"name":"address","nodeType":"ElementaryTypeName","src":"8271:7:85","typeDescriptions":{}}},"id":61245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8271:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d09d1c0cd5235b402c265950dd22e16bfd7ff357f3211220aad5565d313a76e3","typeString":"literal_string \"repay(bytes,uint256,address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":61233,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8146:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8150:19:85","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8146:23:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":61246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8146:195:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"8121:220:85"},{"assignments":[61249],"declarations":[{"constant":false,"id":61249,"mutability":"mutable","name":"success","nameLocation":"8356:7:85","nodeType":"VariableDeclaration","scope":61264,"src":"8351:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61248,"name":"bool","nodeType":"ElementaryTypeName","src":"8351:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":61258,"initialValue":{"arguments":[{"hexValue":"5265706179416374696f6e","id":61251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8391:13:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_a217ff37334de0b722317a00a3757aba406aa44016a02cf62262dbb0deba37f4","typeString":"literal_string \"RepayAction\""},"value":"RepayAction"},{"hexValue":"30","id":61252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8406:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":61253,"name":"repayData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61232,"src":"8409:9:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":61254,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"8420:4:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":61255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8425:9:85","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"8420:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":61256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8435:4:85","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"8420:19:85","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a217ff37334de0b722317a00a3757aba406aa44016a02cf62262dbb0deba37f4","typeString":"literal_string \"RepayAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":61250,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"8366:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":61257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8366:74:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"8351:89:85"},{"expression":{"arguments":[{"id":61260,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61249,"src":"8458:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205265706179416374696f6e20657865637574696f6e206661696c6564","id":61261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8467:35:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_a4bc3d816954f086fe4863737210b7d99ab975b7207727dacdec8334a4e303c0","typeString":"literal_string \"ERR: RepayAction execution failed\""},"value":"ERR: RepayAction execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4bc3d816954f086fe4863737210b7d99ab975b7207727dacdec8334a4e303c0","typeString":"literal_string \"ERR: RepayAction execution failed\""}],"id":61259,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8450:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8450:53:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61263,"nodeType":"ExpressionStatement","src":"8450:53:85"}]},"documentation":{"id":61099,"nodeType":"StructuredDocumentation","src":"6497:299:85","text":" @notice The repay function is a universal function to repay debt to a specified lender\n @param repayData_ The repay data for the lender\n @param value_ Ether value\n @param onBehalf_ The user who we are repaying for\n @param lenderName_ The name of the lender"},"functionSelector":"216684b3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":61112,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"7000:17:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":61113,"kind":"modifierInvocation","modifierName":{"id":61111,"name":"onlyRole","nameLocations":["6991:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"6991:8:85"},"nodeType":"ModifierInvocation","src":"6991:27:85"}],"name":"repay","nameLocation":"6810:5:85","parameters":{"id":61110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61101,"mutability":"mutable","name":"repayData_","nameLocation":"6838:10:85","nodeType":"VariableDeclaration","scope":61265,"src":"6825:23:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61100,"name":"bytes","nodeType":"ElementaryTypeName","src":"6825:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":61103,"mutability":"mutable","name":"value_","nameLocation":"6866:6:85","nodeType":"VariableDeclaration","scope":61265,"src":"6858:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61102,"name":"uint256","nodeType":"ElementaryTypeName","src":"6858:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61105,"mutability":"mutable","name":"onBehalf_","nameLocation":"6890:9:85","nodeType":"VariableDeclaration","scope":61265,"src":"6882:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61104,"name":"address","nodeType":"ElementaryTypeName","src":"6882:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61107,"mutability":"mutable","name":"lenderName_","nameLocation":"6923:11:85","nodeType":"VariableDeclaration","scope":61265,"src":"6909:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61106,"name":"string","nodeType":"ElementaryTypeName","src":"6909:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":61109,"mutability":"mutable","name":"loanId_","nameLocation":"6952:7:85","nodeType":"VariableDeclaration","scope":61265,"src":"6944:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61108,"name":"uint256","nodeType":"ElementaryTypeName","src":"6944:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6815:150:85"},"returnParameters":{"id":61114,"nodeType":"ParameterList","parameters":[],"src":"7023:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":61327,"nodeType":"FunctionDefinition","src":"8847:745:85","nodes":[],"body":{"id":61326,"nodeType":"Block","src":"9051:541:85","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":61283,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61272,"src":"9104:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61285,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61270,"src":"9136:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61286,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61272,"src":"9147:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61287,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61274,"src":"9160:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61284,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"9117:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":61288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9117:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61289,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61270,"src":"9170:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61290,"name":"withdrawData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61268,"src":"9181:13:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":61280,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"9066:15:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":61282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9082:8:85","memberName":"Withdraw","nodeType":"MemberAccess","referencedDeclaration":74026,"src":"9066:24:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (string memory,address,address,bytes memory)"}},"id":61291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9066:138:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61292,"nodeType":"EmitStatement","src":"9061:143:85"},{"assignments":[61294],"declarations":[{"constant":false,"id":61294,"mutability":"mutable","name":"witData","nameLocation":"9227:7:85","nodeType":"VariableDeclaration","scope":61326,"src":"9214:20:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61293,"name":"bytes","nodeType":"ElementaryTypeName","src":"9214:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61309,"initialValue":{"arguments":[{"hexValue":"77697468647261772862797465732c75696e743235362c6164647265737329","id":61297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9274:33:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_135390f90b9d4b410a2be88f0673ecafa1c507617f2fc97cc63d457b6d73cbbc","typeString":"literal_string \"withdraw(bytes,uint256,address)\""},"value":"withdraw(bytes,uint256,address)"},{"id":61298,"name":"withdrawData_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61268,"src":"9321:13:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"30","id":61299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9348:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"arguments":[{"id":61303,"name":"onBehalf_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61270,"src":"9390:9:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61304,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61272,"src":"9401:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61305,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61274,"src":"9414:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61302,"name":"fetchUserBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61857,"src":"9371:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (address,string memory,uint256) view returns (address)"}},"id":61306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9371:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9363:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61300,"name":"address","nodeType":"ElementaryTypeName","src":"9363:7:85","typeDescriptions":{}}},"id":61307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9363:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_135390f90b9d4b410a2be88f0673ecafa1c507617f2fc97cc63d457b6d73cbbc","typeString":"literal_string \"withdraw(bytes,uint256,address)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":61295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9237:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9241:19:85","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9237:23:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":61308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9237:196:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"9214:219:85"},{"assignments":[61311],"declarations":[{"constant":false,"id":61311,"mutability":"mutable","name":"success","nameLocation":"9448:7:85","nodeType":"VariableDeclaration","scope":61326,"src":"9443:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61310,"name":"bool","nodeType":"ElementaryTypeName","src":"9443:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":61320,"initialValue":{"arguments":[{"hexValue":"5769746864726177416374696f6e","id":61313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9483:16:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_826ecd6197a792cbe0e4d0b23569907711a13d6a01d0d348ba2a83813fcf19c3","typeString":"literal_string \"WithdrawAction\""},"value":"WithdrawAction"},{"hexValue":"30","id":61314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9501:7:85","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":61315,"name":"witData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61294,"src":"9510:7:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":61316,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"9519:4:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":61317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9524:9:85","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"9519:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":61318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9534:4:85","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"9519:19:85","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_826ecd6197a792cbe0e4d0b23569907711a13d6a01d0d348ba2a83813fcf19c3","typeString":"literal_string \"WithdrawAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":61312,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"9458:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":61319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9458:81:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9443:96:85"},{"expression":{"arguments":[{"id":61322,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61311,"src":"9557:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"457865637574696f6e206661696c6564","id":61323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9566:18:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""},"value":"Execution failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_36fdcc45171afde7667666c94fc33ecdb7822c92e5282dda8124205e12e0ac03","typeString":"literal_string \"Execution failed\""}],"id":61321,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9549:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9549:36:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61325,"nodeType":"ExpressionStatement","src":"9549:36:85"}]},"documentation":{"id":61266,"nodeType":"StructuredDocumentation","src":"8516:326:85","text":" @notice The withdraw function is a universal function to withdraw collateral from a specified lender\n @param withdrawData_ The withdraw data for the lender\n @param onBehalf_ The user who we are repaying for\n @param lenderName_ The name of the lender\n @param loanId_ The user loan id"},"functionSelector":"856203f5","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":61277,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"9028:17:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":61278,"kind":"modifierInvocation","modifierName":{"id":61276,"name":"onlyRole","nameLocations":["9019:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"9019:8:85"},"nodeType":"ModifierInvocation","src":"9019:27:85"}],"name":"withdraw","nameLocation":"8856:8:85","parameters":{"id":61275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61268,"mutability":"mutable","name":"withdrawData_","nameLocation":"8887:13:85","nodeType":"VariableDeclaration","scope":61327,"src":"8874:26:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61267,"name":"bytes","nodeType":"ElementaryTypeName","src":"8874:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":61270,"mutability":"mutable","name":"onBehalf_","nameLocation":"8918:9:85","nodeType":"VariableDeclaration","scope":61327,"src":"8910:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61269,"name":"address","nodeType":"ElementaryTypeName","src":"8910:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61272,"mutability":"mutable","name":"lenderName_","nameLocation":"8951:11:85","nodeType":"VariableDeclaration","scope":61327,"src":"8937:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61271,"name":"string","nodeType":"ElementaryTypeName","src":"8937:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":61274,"mutability":"mutable","name":"loanId_","nameLocation":"8980:7:85","nodeType":"VariableDeclaration","scope":61327,"src":"8972:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61273,"name":"uint256","nodeType":"ElementaryTypeName","src":"8972:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8864:129:85"},"returnParameters":{"id":61279,"nodeType":"ParameterList","parameters":[],"src":"9051:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":61380,"nodeType":"FunctionDefinition","src":"9744:488:85","nodes":[],"body":{"id":61379,"nodeType":"Block","src":"9810:422:85","nodes":[],"statements":[{"assignments":[61336],"declarations":[{"constant":false,"id":61336,"mutability":"mutable","name":"debt","nameLocation":"9828:4:85","nodeType":"VariableDeclaration","scope":61379,"src":"9820:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61335,"name":"uint256","nodeType":"ElementaryTypeName","src":"9820:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61341,"initialValue":{"arguments":[{"id":61338,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61332,"src":"9859:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61339,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61330,"src":"9868:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61337,"name":"calculateProtectionUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61699,"src":"9835:23:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":61340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9835:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9820:54:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61342,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61336,"src":"9888:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":61343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9895:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9888:8:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":61377,"nodeType":"Block","src":"10166:60:85","statements":[{"expression":{"arguments":[{"id":61373,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61330,"src":"10200:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61374,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61332,"src":"10207:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61372,"name":"updateProtectionFTM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61422,"src":"10180:19:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":61375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10180:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61376,"nodeType":"ExpressionStatement","src":"10180:35:85"}]},"id":61378,"nodeType":"IfStatement","src":"9884:342:85","trueBody":{"id":61371,"nodeType":"Block","src":"9898:262:85","statements":[{"assignments":[61346],"declarations":[{"constant":false,"id":61346,"mutability":"mutable","name":"token","nameLocation":"9920:5:85","nodeType":"VariableDeclaration","scope":61371,"src":"9912:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61345,"name":"address","nodeType":"ElementaryTypeName","src":"9912:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":61352,"initialValue":{"expression":{"arguments":[{"id":61348,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61330,"src":"9942:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61349,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61332,"src":"9949:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61347,"name":"getSupplyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61775,"src":"9928:13:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_LoanSupplyData_$56003_memory_ptr_$","typeString":"function (address,uint256) view returns (struct ILoan.LoanSupplyData memory)"}},"id":61350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9928:29:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"id":61351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9958:17:85","memberName":"collateralAddress","nodeType":"MemberAccess","referencedDeclaration":55998,"src":"9928:47:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9912:63:85"},{"assignments":[61354],"declarations":[{"constant":false,"id":61354,"mutability":"mutable","name":"sucess","nameLocation":"9994:6:85","nodeType":"VariableDeclaration","scope":61371,"src":"9989:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61353,"name":"bool","nodeType":"ElementaryTypeName","src":"9989:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":61360,"initialValue":{"arguments":[{"id":61356,"name":"debt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61336,"src":"10022:4:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61357,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61346,"src":"10028:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61358,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61330,"src":"10035:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":61355,"name":"transferToProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61578,"src":"10003:18:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) returns (bool)"}},"id":61359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10003:38:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9989:52:85"},{"expression":{"arguments":[{"id":61362,"name":"sucess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61354,"src":"10063:6:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205472616e7366657220546f6b656e206661696c6564","id":61363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10071:28:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_1974eba681ad4e5913f55158702faf78a41cbd2ddc0515cbae994b54116c1dd6","typeString":"literal_string \"ERR: Transfer Token failed\""},"value":"ERR: Transfer Token failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1974eba681ad4e5913f55158702faf78a41cbd2ddc0515cbae994b54116c1dd6","typeString":"literal_string \"ERR: Transfer Token failed\""}],"id":61361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10055:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10055:45:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61365,"nodeType":"ExpressionStatement","src":"10055:45:85"},{"expression":{"arguments":[{"id":61367,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61330,"src":"10134:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61368,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61332,"src":"10141:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61366,"name":"updateProtectionFTM","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61422,"src":"10114:19:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":61369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10114:35:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61370,"nodeType":"ExpressionStatement","src":"10114:35:85"}]}}]},"documentation":{"id":61328,"nodeType":"StructuredDocumentation","src":"9598:141:85","text":" @notice This function cancels protection\n @param user_ The users eth address\n @param loanId_ The users loan id"},"implemented":true,"kind":"function","modifiers":[],"name":"cancelProtection","nameLocation":"9753:16:85","parameters":{"id":61333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61330,"mutability":"mutable","name":"user_","nameLocation":"9778:5:85","nodeType":"VariableDeclaration","scope":61380,"src":"9770:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61329,"name":"address","nodeType":"ElementaryTypeName","src":"9770:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61332,"mutability":"mutable","name":"loanId_","nameLocation":"9793:7:85","nodeType":"VariableDeclaration","scope":61380,"src":"9785:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61331,"name":"uint256","nodeType":"ElementaryTypeName","src":"9785:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9769:32:85"},"returnParameters":{"id":61334,"nodeType":"ParameterList","parameters":[],"src":"9810:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":61422,"nodeType":"FunctionDefinition","src":"10294:364:85","nodes":[],"body":{"id":61421,"nodeType":"Block","src":"10363:295:85","nodes":[],"statements":[{"expression":{"arguments":[{"id":61390,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61382,"src":"10398:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":61387,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"10373:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":61389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10382:15:85","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"10373:24:85","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":61391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10373:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61392,"nodeType":"ExpressionStatement","src":"10373:31:85"},{"expression":{"arguments":[{"id":61396,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61384,"src":"10436:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61393,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"10414:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":61395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10423:12:85","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"10414:21:85","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":61397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10414:30:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61398,"nodeType":"ExpressionStatement","src":"10414:30:85"},{"assignments":[61400],"declarations":[{"constant":false,"id":61400,"mutability":"mutable","name":"protectionFTMKey","nameLocation":"10462:16:85","nodeType":"VariableDeclaration","scope":61421,"src":"10454:24:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10454:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61409,"initialValue":{"arguments":[{"id":61402,"name":"USER_ID_PROTECTION_FINANCIAL_TERMS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71243,"src":"10491:34:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61405,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61382,"src":"10538:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61406,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61384,"src":"10545:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61403,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10527:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10531:6:85","memberName":"encode","nodeType":"MemberAccess","src":"10527:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10527:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61401,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"10481:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10481:73:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"10454:100:85"},{"expression":{"arguments":[{"id":61413,"name":"protectionFTMKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61400,"src":"10592:16:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61410,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"10564:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10580:11:85","memberName":"deleteBytes","nodeType":"MemberAccess","referencedDeclaration":67358,"src":"10564:27:85","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32) external"}},"id":61414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10564:45:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61415,"nodeType":"ExpressionStatement","src":"10564:45:85"},{"expression":{"arguments":[{"id":61417,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61382,"src":"10636:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61418,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61384,"src":"10643:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61416,"name":"updateProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61491,"src":"10619:16:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":61419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10619:32:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61420,"nodeType":"ExpressionStatement","src":"10619:32:85"}]},"implemented":true,"kind":"function","modifiers":[],"name":"updateProtectionFTM","nameLocation":"10303:19:85","parameters":{"id":61385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61382,"mutability":"mutable","name":"user_","nameLocation":"10331:5:85","nodeType":"VariableDeclaration","scope":61422,"src":"10323:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61381,"name":"address","nodeType":"ElementaryTypeName","src":"10323:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61384,"mutability":"mutable","name":"loanId_","nameLocation":"10346:7:85","nodeType":"VariableDeclaration","scope":61422,"src":"10338:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61383,"name":"uint256","nodeType":"ElementaryTypeName","src":"10338:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10322:32:85"},"returnParameters":{"id":61386,"nodeType":"ParameterList","parameters":[],"src":"10363:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":61491,"nodeType":"FunctionDefinition","src":"10706:753:85","nodes":[],"body":{"id":61490,"nodeType":"Block","src":"10772:687:85","nodes":[],"statements":[{"expression":{"arguments":[{"id":61432,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61424,"src":"10807:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":61429,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"10782:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":61431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10791:15:85","memberName":"validateAddress","nodeType":"MemberAccess","referencedDeclaration":75376,"src":"10782:24:85","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":61433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10782:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61434,"nodeType":"ExpressionStatement","src":"10782:31:85"},{"expression":{"arguments":[{"id":61438,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61426,"src":"10845:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61435,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"10823:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":61437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10832:12:85","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"10823:21:85","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":61439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10823:30:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61440,"nodeType":"ExpressionStatement","src":"10823:30:85"},{"assignments":[61442],"declarations":[{"constant":false,"id":61442,"mutability":"mutable","name":"updateProtectionData","nameLocation":"10876:20:85","nodeType":"VariableDeclaration","scope":61490,"src":"10863:33:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61441,"name":"bytes","nodeType":"ElementaryTypeName","src":"10863:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61449,"initialValue":{"arguments":[{"expression":{"id":61445,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10910:5:85","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":61446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10916:9:85","memberName":"timestamp","nodeType":"MemberAccess","src":"10910:15:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":61447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10927:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":61443,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10899:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10903:6:85","memberName":"encode","nodeType":"MemberAccess","src":"10899:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10899:30:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10863:66:85"},{"eventCall":{"arguments":[{"id":61453,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61424,"src":"10979:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61454,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61426,"src":"10986:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61455,"name":"updateProtectionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61442,"src":"10995:20:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":61450,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"10944:15:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":61452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10960:18:85","memberName":"UpdateProtectionLB","nodeType":"MemberAccess","referencedDeclaration":74040,"src":"10944:34:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,uint256,bytes memory)"}},"id":61456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10944:72:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61457,"nodeType":"EmitStatement","src":"10939:77:85"},{"assignments":[61459],"declarations":[{"constant":false,"id":61459,"mutability":"mutable","name":"updateLoanData","nameLocation":"11040:14:85","nodeType":"VariableDeclaration","scope":61490,"src":"11027:27:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61458,"name":"bytes","nodeType":"ElementaryTypeName","src":"11027:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61473,"initialValue":{"arguments":[{"hexValue":"75706461746550726f74656374696f6e2862797465732c616464726573732c75696e743235362c75696e743829","id":61462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11094:47:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_27365747d872e37e02f6fefd0c106156c8004e00c21bcd0c217df817a2e240e4","typeString":"literal_string \"updateProtection(bytes,address,uint256,uint8)\""},"value":"updateProtection(bytes,address,uint256,uint8)"},{"id":61463,"name":"updateProtectionData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61442,"src":"11155:20:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":61464,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61424,"src":"11189:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61465,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61426,"src":"11208:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"expression":{"expression":{"id":61468,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"11235:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":61469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11247:11:85","memberName":"UpdateField","nodeType":"MemberAccess","referencedDeclaration":57229,"src":"11235:23:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_UpdateField_$57229_$","typeString":"type(enum IProtection.UpdateField)"}},"id":61470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11259:3:85","memberName":"ALL","nodeType":"MemberAccess","referencedDeclaration":57228,"src":"11235:27:85","typeDescriptions":{"typeIdentifier":"t_enum$_UpdateField_$57229","typeString":"enum IProtection.UpdateField"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_UpdateField_$57229","typeString":"enum IProtection.UpdateField"}],"id":61467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11229:5:85","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":61466,"name":"uint8","nodeType":"ElementaryTypeName","src":"11229:5:85","typeDescriptions":{}}},"id":61471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11229:34:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27365747d872e37e02f6fefd0c106156c8004e00c21bcd0c217df817a2e240e4","typeString":"literal_string \"updateProtection(bytes,address,uint256,uint8)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":61460,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11057:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61461,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11061:19:85","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11057:23:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":61472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11057:216:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11027:246:85"},{"assignments":[61475],"declarations":[{"constant":false,"id":61475,"mutability":"mutable","name":"success","nameLocation":"11288:7:85","nodeType":"VariableDeclaration","scope":61490,"src":"11283:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61474,"name":"bool","nodeType":"ElementaryTypeName","src":"11283:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":61484,"initialValue":{"arguments":[{"hexValue":"55706461746550726f74656374696f6e416374696f6e","id":61477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11323:24:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_06c512975e7c12f3a96bcfaa2c34e16ad5558594e10ca5049dc47b6984fb8c62","typeString":"literal_string \"UpdateProtectionAction\""},"value":"UpdateProtectionAction"},{"hexValue":"30","id":61478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11349:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":61479,"name":"updateLoanData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61459,"src":"11352:14:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":61480,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"11368:4:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":61481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11373:9:85","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"11368:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":61482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11383:4:85","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"11368:19:85","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_06c512975e7c12f3a96bcfaa2c34e16ad5558594e10ca5049dc47b6984fb8c62","typeString":"literal_string \"UpdateProtectionAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":61476,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"11298:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":61483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11298:90:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"11283:105:85"},{"expression":{"arguments":[{"id":61486,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61475,"src":"11406:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a2055706461746550726f74656374696f6e416374696f6e206661696c6564","id":61487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11415:36:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_3398657e09bbe82e2e077f1391ae572f600128ec4522b6447520c28beae69af3","typeString":"literal_string \"ERR: UpdateProtectionAction failed\""},"value":"ERR: UpdateProtectionAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3398657e09bbe82e2e077f1391ae572f600128ec4522b6447520c28beae69af3","typeString":"literal_string \"ERR: UpdateProtectionAction failed\""}],"id":61485,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11398:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11398:54:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61489,"nodeType":"ExpressionStatement","src":"11398:54:85"}]},"implemented":true,"kind":"function","modifiers":[],"name":"updateProtection","nameLocation":"10715:16:85","parameters":{"id":61427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61424,"mutability":"mutable","name":"user_","nameLocation":"10740:5:85","nodeType":"VariableDeclaration","scope":61491,"src":"10732:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61423,"name":"address","nodeType":"ElementaryTypeName","src":"10732:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61426,"mutability":"mutable","name":"loanId_","nameLocation":"10755:7:85","nodeType":"VariableDeclaration","scope":61491,"src":"10747:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61425,"name":"uint256","nodeType":"ElementaryTypeName","src":"10747:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10731:32:85"},"returnParameters":{"id":61428,"nodeType":"ParameterList","parameters":[],"src":"10772:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":61578,"nodeType":"FunctionDefinition","src":"11643:920:85","nodes":[],"body":{"id":61577,"nodeType":"Block","src":"11749:814:85","nodes":[],"statements":[{"expression":{"arguments":[{"id":61506,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61494,"src":"11781:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61503,"name":"Security","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75484,"src":"11759:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Security_$75484_$","typeString":"type(library Security)"}},"id":61505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11768:12:85","memberName":"validateUint","nodeType":"MemberAccess","referencedDeclaration":75389,"src":"11759:21:85","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":61507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11759:29:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61508,"nodeType":"ExpressionStatement","src":"11759:29:85"},{"assignments":[61510],"declarations":[{"constant":false,"id":61510,"mutability":"mutable","name":"streamVaultKey","nameLocation":"11806:14:85","nodeType":"VariableDeclaration","scope":61577,"src":"11798:22:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61509,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11798:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61518,"initialValue":{"arguments":[{"id":61512,"name":"ADDRESS_NAME_STREAMVAULT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71288,"src":"11833:24:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"7c","id":61515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11870:3:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""},"value":"|"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2736824a8d8680efd16063b669359e760b24936629c9681635556c2b7fa269f","typeString":"literal_string \"|\""}],"expression":{"id":61513,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11859:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11863:6:85","memberName":"encode","nodeType":"MemberAccess","src":"11859:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11859:15:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61511,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"11823:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11823:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11798:77:85"},{"assignments":[61520],"declarations":[{"constant":false,"id":61520,"mutability":"mutable","name":"streamVaultAddress","nameLocation":"11893:18:85","nodeType":"VariableDeclaration","scope":61577,"src":"11885:26:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61519,"name":"address","nodeType":"ElementaryTypeName","src":"11885:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":61525,"initialValue":{"arguments":[{"id":61523,"name":"streamVaultKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61510,"src":"11941:14:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61521,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"11914:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11930:10:85","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"11914:26:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":61524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11914:42:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11885:71:85"},{"assignments":[61527],"declarations":[{"constant":false,"id":61527,"mutability":"mutable","name":"payableVaultAddress","nameLocation":"11982:19:85","nodeType":"VariableDeclaration","scope":61577,"src":"11966:35:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":61526,"name":"address","nodeType":"ElementaryTypeName","src":"11966:15:85","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"id":61532,"initialValue":{"arguments":[{"id":61530,"name":"streamVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61520,"src":"12012:18:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12004:8:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":61528,"name":"address","nodeType":"ElementaryTypeName","src":"12004:8:85","stateMutability":"payable","typeDescriptions":{}}},"id":61531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12004:27:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"11966:65:85"},{"eventCall":{"arguments":[{"id":61536,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61494,"src":"12081:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":61537,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61496,"src":"12089:6:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61538,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61498,"src":"12097:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61539,"name":"payableVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61527,"src":"12104:19:85","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"id":61533,"name":"BorrowEventsLib","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74227,"src":"12047:15:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BorrowEventsLib_$74227_$","typeString":"type(library BorrowEventsLib)"}},"id":61535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12063:17:85","memberName":"TransferCancelFee","nodeType":"MemberAccess","referencedDeclaration":74050,"src":"12047:33:85","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$returns$__$","typeString":"function (uint256,address,address,address)"}},"id":61540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12047:77:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61541,"nodeType":"EmitStatement","src":"12042:82:85"},{"assignments":[61543],"declarations":[{"constant":false,"id":61543,"mutability":"mutable","name":"transferData","nameLocation":"12147:12:85","nodeType":"VariableDeclaration","scope":61577,"src":"12134:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61542,"name":"bytes","nodeType":"ElementaryTypeName","src":"12134:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61558,"initialValue":{"arguments":[{"hexValue":"7472616e73666572546f6b656e28616464726573732c616464726573732c616464726573732c75696e7432353629","id":61546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12199:48:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c54de4f88e70d8b8516170116bb3a4f0d56441744f63fa5dccdbab48861ab81","typeString":"literal_string \"transferToken(address,address,address,uint256)\""},"value":"transferToken(address,address,address,uint256)"},{"arguments":[{"id":61549,"name":"token_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61496,"src":"12269:6:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":61548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12261:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61547,"name":"address","nodeType":"ElementaryTypeName","src":"12261:7:85","typeDescriptions":{}}},"id":61550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12261:15:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61551,"name":"payableVaultAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61527,"src":"12290:19:85","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"arguments":[{"id":61554,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12331:4:85","typeDescriptions":{"typeIdentifier":"t_contract$_LenderBlueprint_$61858","typeString":"contract LenderBlueprint"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LenderBlueprint_$61858","typeString":"contract LenderBlueprint"}],"id":61553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12323:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61552,"name":"address","nodeType":"ElementaryTypeName","src":"12323:7:85","typeDescriptions":{}}},"id":61555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12323:13:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61556,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61494,"src":"12350:6:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c54de4f88e70d8b8516170116bb3a4f0d56441744f63fa5dccdbab48861ab81","typeString":"literal_string \"transferToken(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61544,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12162:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12166:19:85","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12162:23:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":61557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12162:204:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12134:232:85"},{"expression":{"id":61568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61559,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61501,"src":"12376:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"5472616e73666572546f6b656e416374696f6e","id":61561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12411:21:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0e2518d01e9dcc67c7bfe96295c342b3c210dbf41b28f5f48db5f395501d52f","typeString":"literal_string \"TransferTokenAction\""},"value":"TransferTokenAction"},{"hexValue":"30","id":61562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12434:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":61563,"name":"transferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61543,"src":"12437:12:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":61564,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"12451:4:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":61565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12456:9:85","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"12451:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":61566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12466:4:85","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"12451:19:85","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0e2518d01e9dcc67c7bfe96295c342b3c210dbf41b28f5f48db5f395501d52f","typeString":"literal_string \"TransferTokenAction\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":61560,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"12386:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":61567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12386:85:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12376:95:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61569,"nodeType":"ExpressionStatement","src":"12376:95:85"},{"expression":{"arguments":[{"id":61571,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61501,"src":"12489:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205472616e73666572546f6b656e416374696f6e206661696c6564","id":61572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12498:33:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc7018dc2c87b29e4aa58c438d616250c98ee2296837f76dc3d8a354ae82532f","typeString":"literal_string \"ERR: TransferTokenAction failed\""},"value":"ERR: TransferTokenAction failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bc7018dc2c87b29e4aa58c438d616250c98ee2296837f76dc3d8a354ae82532f","typeString":"literal_string \"ERR: TransferTokenAction failed\""}],"id":61570,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"12481:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12481:51:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61574,"nodeType":"ExpressionStatement","src":"12481:51:85"},{"expression":{"id":61575,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61501,"src":"12549:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":61502,"id":61576,"nodeType":"Return","src":"12542:14:85"}]},"documentation":{"id":61492,"nodeType":"StructuredDocumentation","src":"11465:173:85","text":" @notice This function transfers tokens to the protocol\n @param value_ The amount of tokens to transfer\n @param token_ The address of the token"},"implemented":true,"kind":"function","modifiers":[],"name":"transferToProtocol","nameLocation":"11652:18:85","parameters":{"id":61499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61494,"mutability":"mutable","name":"value_","nameLocation":"11679:6:85","nodeType":"VariableDeclaration","scope":61578,"src":"11671:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61493,"name":"uint256","nodeType":"ElementaryTypeName","src":"11671:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61496,"mutability":"mutable","name":"token_","nameLocation":"11695:6:85","nodeType":"VariableDeclaration","scope":61578,"src":"11687:14:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61495,"name":"address","nodeType":"ElementaryTypeName","src":"11687:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61498,"mutability":"mutable","name":"user_","nameLocation":"11711:5:85","nodeType":"VariableDeclaration","scope":61578,"src":"11703:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61497,"name":"address","nodeType":"ElementaryTypeName","src":"11703:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11670:47:85"},"returnParameters":{"id":61502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61501,"mutability":"mutable","name":"success","nameLocation":"11740:7:85","nodeType":"VariableDeclaration","scope":61578,"src":"11735:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61500,"name":"bool","nodeType":"ElementaryTypeName","src":"11735:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11734:14:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":61617,"nodeType":"FunctionDefinition","src":"12611:612:85","nodes":[],"body":{"id":61616,"nodeType":"Block","src":"12794:429:85","nodes":[],"statements":[{"assignments":[61591],"declarations":[{"constant":false,"id":61591,"mutability":"mutable","name":"setApprovedCollateralToLenderBytesData","nameLocation":"12817:38:85","nodeType":"VariableDeclaration","scope":61616,"src":"12804:51:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61590,"name":"bytes","nodeType":"ElementaryTypeName","src":"12804:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61599,"initialValue":{"arguments":[{"hexValue":"736574417070726f766564436f6c6c61746572616c546f4c656e64657228737472696e672c616464726573732c626f6f6c29","id":61594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12894:52:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_7feee92e54525bec8a745f911ad909956c609840b775bb19851c4008fb46e742","typeString":"literal_string \"setApprovedCollateralToLender(string,address,bool)\""},"value":"setApprovedCollateralToLender(string,address,bool)"},{"id":61595,"name":"lender_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61580,"src":"12948:7:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61596,"name":"collateral_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61582,"src":"12957:11:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61597,"name":"value_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61584,"src":"12970:6:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7feee92e54525bec8a745f911ad909956c609840b775bb19851c4008fb46e742","typeString":"literal_string \"setApprovedCollateralToLender(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":61592,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12870:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12874:19:85","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12870:23:85","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":61598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12870:107:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"12804:173:85"},{"assignments":[61601],"declarations":[{"constant":false,"id":61601,"mutability":"mutable","name":"success","nameLocation":"12992:7:85","nodeType":"VariableDeclaration","scope":61616,"src":"12987:12:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61600,"name":"bool","nodeType":"ElementaryTypeName","src":"12987:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":61610,"initialValue":{"arguments":[{"hexValue":"536574417070726f766564436f6c6c61746572616c546f4c656e646572","id":61603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13040:31:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_2fe609e45a05efc5ca5cac822b791ae5a062a5adc30d3db7746437ae32f0b938","typeString":"literal_string \"SetApprovedCollateralToLender\""},"value":"SetApprovedCollateralToLender"},{"hexValue":"30","id":61604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13073:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":61605,"name":"setApprovedCollateralToLenderBytesData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61591,"src":"13076:38:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"expression":{"id":61606,"name":"Enum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71189,"src":"13116:4:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Enum_$71189_$","typeString":"type(contract Enum)"}},"id":61607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13121:9:85","memberName":"Operation","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"13116:14:85","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Operation_$71188_$","typeString":"type(enum Enum.Operation)"}},"id":61608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13131:4:85","memberName":"Call","nodeType":"MemberAccess","referencedDeclaration":71186,"src":"13116:19:85","typeDescriptions":{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2fe609e45a05efc5ca5cac822b791ae5a062a5adc30d3db7746437ae32f0b938","typeString":"literal_string \"SetApprovedCollateralToLender\""},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_enum$_Operation_$71188","typeString":"enum Enum.Operation"}],"id":61602,"name":"executeActionTransaction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71547,"src":"13002:24:85","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$71188_$returns$_t_bool_$","typeString":"function (string memory,uint256,bytes memory,enum Enum.Operation) returns (bool)"}},"id":61609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13002:143:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"12987:158:85"},{"expression":{"arguments":[{"id":61612,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61601,"src":"13163:7:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a20536574417070726f766564436f6c6c61746572616c546f4c656e646572206661696c6564","id":61613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13172:43:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_ff4f76b1fb2efe935493c83eff4938a8a94d68c34cbded01b9a981f71ab53dce","typeString":"literal_string \"ERR: SetApprovedCollateralToLender failed\""},"value":"ERR: SetApprovedCollateralToLender failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ff4f76b1fb2efe935493c83eff4938a8a94d68c34cbded01b9a981f71ab53dce","typeString":"literal_string \"ERR: SetApprovedCollateralToLender failed\""}],"id":61611,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"13155:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13155:61:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61615,"nodeType":"ExpressionStatement","src":"13155:61:85"}]},"functionSelector":"7feee92e","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":61587,"name":"BLUEPRINT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":67523,"src":"12771:17:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":61588,"kind":"modifierInvocation","modifierName":{"id":61586,"name":"onlyRole","nameLocations":["12762:8:85"],"nodeType":"IdentifierPath","referencedDeclaration":67624,"src":"12762:8:85"},"nodeType":"ModifierInvocation","src":"12762:27:85"}],"name":"setApprovedCollateralToLender","nameLocation":"12620:29:85","parameters":{"id":61585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61580,"mutability":"mutable","name":"lender_","nameLocation":"12673:7:85","nodeType":"VariableDeclaration","scope":61617,"src":"12659:21:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61579,"name":"string","nodeType":"ElementaryTypeName","src":"12659:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":61582,"mutability":"mutable","name":"collateral_","nameLocation":"12698:11:85","nodeType":"VariableDeclaration","scope":61617,"src":"12690:19:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61581,"name":"address","nodeType":"ElementaryTypeName","src":"12690:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61584,"mutability":"mutable","name":"value_","nameLocation":"12724:6:85","nodeType":"VariableDeclaration","scope":61617,"src":"12719:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":61583,"name":"bool","nodeType":"ElementaryTypeName","src":"12719:4:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12649:87:85"},"returnParameters":{"id":61589,"nodeType":"ParameterList","parameters":[],"src":"12794:0:85"},"scope":61858,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":61699,"nodeType":"FunctionDefinition","src":"13387:915:85","nodes":[],"body":{"id":61698,"nodeType":"Block","src":"13483:819:85","nodes":[],"statements":[{"assignments":[61631],"declarations":[{"constant":false,"id":61631,"mutability":"mutable","name":"protection","nameLocation":"13523:10:85","nodeType":"VariableDeclaration","scope":61698,"src":"13493:40:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection"},"typeName":{"id":61630,"nodeType":"UserDefinedTypeName","pathNode":{"id":61629,"name":"IProtection.Protection","nameLocations":["13493:11:85","13505:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":57250,"src":"13493:22:85"},"referencedDeclaration":57250,"src":"13493:22:85","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_storage_ptr","typeString":"struct IProtection.Protection"}},"visibility":"internal"}],"id":61636,"initialValue":{"arguments":[{"id":61633,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61622,"src":"13554:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61634,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61620,"src":"13561:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61632,"name":"getProtectionInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61737,"src":"13536:17:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_Protection_$57250_memory_ptr_$","typeString":"function (address,uint256) view returns (struct IProtection.Protection memory)"}},"id":61635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13536:33:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection memory"}},"nodeType":"VariableDeclarationStatement","src":"13493:76:85"},{"assignments":[61641],"declarations":[{"constant":false,"id":61641,"mutability":"mutable","name":"protectionTerms","nameLocation":"13623:15:85","nodeType":"VariableDeclaration","scope":61698,"src":"13579:59:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"},"typeName":{"id":61640,"nodeType":"UserDefinedTypeName","pathNode":{"id":61639,"name":"IProtection.ProtectionFinancialTerms","nameLocations":["13579:11:85","13591:24:85"],"nodeType":"IdentifierPath","referencedDeclaration":57272,"src":"13579:36:85"},"referencedDeclaration":57272,"src":"13579:36:85","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_storage_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"}},"visibility":"internal"}],"id":61646,"initialValue":{"arguments":[{"id":61643,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61622,"src":"13669:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61644,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61620,"src":"13676:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":61642,"name":"getProtectionFinancialTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61813,"src":"13641:27:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_struct$_ProtectionFinancialTerms_$57272_memory_ptr_$","typeString":"function (address,uint256) view returns (struct IProtection.ProtectionFinancialTerms memory)"}},"id":61645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13641:43:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"nodeType":"VariableDeclarationStatement","src":"13579:105:85"},{"assignments":[61648],"declarations":[{"constant":false,"id":61648,"mutability":"mutable","name":"totalUsed","nameLocation":"13702:9:85","nodeType":"VariableDeclaration","scope":61698,"src":"13694:17:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61647,"name":"uint256","nodeType":"ElementaryTypeName","src":"13694:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61650,"initialValue":{"hexValue":"30","id":61649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13714:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13694:21:85"},{"assignments":[61652],"declarations":[{"constant":false,"id":61652,"mutability":"mutable","name":"feeInUsd","nameLocation":"13734:8:85","nodeType":"VariableDeclaration","scope":61698,"src":"13726:16:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61651,"name":"uint256","nodeType":"ElementaryTypeName","src":"13726:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":61660,"initialValue":{"arguments":[{"expression":{"id":61655,"name":"protectionTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61641,"src":"13807:15:85","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":61656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13823:18:85","memberName":"totalCreditOffered","nodeType":"MemberAccess","referencedDeclaration":57257,"src":"13807:34:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":61657,"name":"protection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61631,"src":"13843:10:85","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection memory"}},"id":61658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13854:15:85","memberName":"cancellationFee","nodeType":"MemberAccess","referencedDeclaration":57242,"src":"13843:26:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61653,"name":"CancelationFeeCalculator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75561,"src":"13745:24:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CancelationFeeCalculator_$75561_$","typeString":"type(library CancelationFeeCalculator)"}},"id":61654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13770:23:85","memberName":"calculateCancelationFee","nodeType":"MemberAccess","referencedDeclaration":75560,"src":"13745:48:85","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":61659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13745:134:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13726:153:85"},{"expression":{"id":61663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61661,"name":"totalUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61648,"src":"13889:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":61662,"name":"feeInUsd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61652,"src":"13902:8:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13889:21:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61664,"nodeType":"ExpressionStatement","src":"13889:21:85"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":61665,"name":"protectionTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61641,"src":"13924:15:85","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":61666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13940:16:85","memberName":"trancheOneAmount","nodeType":"MemberAccess","referencedDeclaration":57261,"src":"13924:32:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":61667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13960:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13924:37:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61675,"nodeType":"IfStatement","src":"13920:110:85","trueBody":{"id":61674,"nodeType":"Block","src":"13963:67:85","statements":[{"expression":{"id":61672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61669,"name":"totalUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61648,"src":"13977:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":61670,"name":"protectionTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61641,"src":"13990:15:85","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":61671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14006:13:85","memberName":"trancheOneFee","nodeType":"MemberAccess","referencedDeclaration":57263,"src":"13990:29:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13977:42:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61673,"nodeType":"ExpressionStatement","src":"13977:42:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":61676,"name":"protectionTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61641,"src":"14043:15:85","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":61677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14059:16:85","memberName":"trancheTwoAmount","nodeType":"MemberAccess","referencedDeclaration":57265,"src":"14043:32:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":61678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14079:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14043:37:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61686,"nodeType":"IfStatement","src":"14039:110:85","trueBody":{"id":61685,"nodeType":"Block","src":"14082:67:85","statements":[{"expression":{"id":61683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61680,"name":"totalUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61648,"src":"14096:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":61681,"name":"protectionTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61641,"src":"14109:15:85","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":61682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14125:13:85","memberName":"trancheTwoFee","nodeType":"MemberAccess","referencedDeclaration":57267,"src":"14109:29:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14096:42:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":61684,"nodeType":"ExpressionStatement","src":"14096:42:85"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":61690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":61687,"name":"protectionTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61641,"src":"14162:15:85","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":61688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14178:18:85","memberName":"trancheThreeAmount","nodeType":"MemberAccess","referencedDeclaration":57269,"src":"14162:34:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":61689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14200:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14162:39:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":61695,"nodeType":"IfStatement","src":"14158:111:85","trueBody":{"id":61694,"nodeType":"Block","src":"14203:66:85","statements":[{"expression":{"expression":{"id":61691,"name":"protectionTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61641,"src":"14224:15:85","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"id":61692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14240:18:85","memberName":"totalCreditOffered","nodeType":"MemberAccess","referencedDeclaration":57257,"src":"14224:34:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":61626,"id":61693,"nodeType":"Return","src":"14217:41:85"}]}},{"expression":{"id":61696,"name":"totalUsed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61648,"src":"14286:9:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":61626,"id":61697,"nodeType":"Return","src":"14279:16:85"}]},"documentation":{"id":61618,"nodeType":"StructuredDocumentation","src":"13229:153:85","text":" @notice This function calculates the protection used\n @param loanId_ The users loan id\n @param user_ The users eth address"},"implemented":true,"kind":"function","modifiers":[],"name":"calculateProtectionUsed","nameLocation":"13396:23:85","parameters":{"id":61623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61620,"mutability":"mutable","name":"loanId_","nameLocation":"13428:7:85","nodeType":"VariableDeclaration","scope":61699,"src":"13420:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61619,"name":"uint256","nodeType":"ElementaryTypeName","src":"13420:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":61622,"mutability":"mutable","name":"user_","nameLocation":"13445:5:85","nodeType":"VariableDeclaration","scope":61699,"src":"13437:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61621,"name":"address","nodeType":"ElementaryTypeName","src":"13437:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13419:32:85"},"returnParameters":{"id":61626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61625,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":61699,"src":"13474:7:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61624,"name":"uint256","nodeType":"ElementaryTypeName","src":"13474:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13473:9:85"},"scope":61858,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":61737,"nodeType":"FunctionDefinition","src":"14471:338:85","nodes":[],"body":{"id":61736,"nodeType":"Block","src":"14583:226:85","nodes":[],"statements":[{"assignments":[61711],"declarations":[{"constant":false,"id":61711,"mutability":"mutable","name":"key","nameLocation":"14601:3:85","nodeType":"VariableDeclaration","scope":61736,"src":"14593:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14593:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61720,"initialValue":{"arguments":[{"id":61713,"name":"USER_ID_PROTECTION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71234,"src":"14617:18:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61716,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61702,"src":"14648:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61717,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61704,"src":"14655:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61714,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14637:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61715,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14641:6:85","memberName":"encode","nodeType":"MemberAccess","src":"14637:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14637:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61712,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"14607:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14607:57:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14593:71:85"},{"assignments":[61722],"declarations":[{"constant":false,"id":61722,"mutability":"mutable","name":"protectionInfo","nameLocation":"14687:14:85","nodeType":"VariableDeclaration","scope":61736,"src":"14674:27:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61721,"name":"bytes","nodeType":"ElementaryTypeName","src":"14674:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61727,"initialValue":{"arguments":[{"id":61725,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61711,"src":"14729:3:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61723,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"14704:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14720:8:85","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"14704:24:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":61726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14704:29:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"14674:59:85"},{"expression":{"arguments":[{"id":61730,"name":"protectionInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61722,"src":"14761:14:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":61731,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"14778:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":61732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14790:10:85","memberName":"Protection","nodeType":"MemberAccess","referencedDeclaration":57250,"src":"14778:22:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}}],"id":61733,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14777:24:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Protection_$57250_storage_ptr_$","typeString":"type(struct IProtection.Protection storage pointer)"}],"expression":{"id":61728,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14750:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14754:6:85","memberName":"decode","nodeType":"MemberAccess","src":"14750:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":61734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14750:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection memory"}},"functionReturnParameters":61709,"id":61735,"nodeType":"Return","src":"14743:59:85"}]},"documentation":{"id":61700,"nodeType":"StructuredDocumentation","src":"14308:158:85","text":" @notice This function returns user protection information\n @param user_ The users eth address\n @param loanId_ The users loan id"},"implemented":true,"kind":"function","modifiers":[],"name":"getProtectionInfo","nameLocation":"14480:17:85","parameters":{"id":61705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61702,"mutability":"mutable","name":"user_","nameLocation":"14506:5:85","nodeType":"VariableDeclaration","scope":61737,"src":"14498:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61701,"name":"address","nodeType":"ElementaryTypeName","src":"14498:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61704,"mutability":"mutable","name":"loanId_","nameLocation":"14521:7:85","nodeType":"VariableDeclaration","scope":61737,"src":"14513:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61703,"name":"uint256","nodeType":"ElementaryTypeName","src":"14513:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14497:32:85"},"returnParameters":{"id":61709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":61737,"src":"14552:29:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_memory_ptr","typeString":"struct IProtection.Protection"},"typeName":{"id":61707,"nodeType":"UserDefinedTypeName","pathNode":{"id":61706,"name":"IProtection.Protection","nameLocations":["14552:11:85","14564:10:85"],"nodeType":"IdentifierPath","referencedDeclaration":57250,"src":"14552:22:85"},"referencedDeclaration":57250,"src":"14552:22:85","typeDescriptions":{"typeIdentifier":"t_struct$_Protection_$57250_storage_ptr","typeString":"struct IProtection.Protection"}},"visibility":"internal"}],"src":"14551:31:85"},"scope":61858,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":61775,"nodeType":"FunctionDefinition","src":"15034:344:85","nodes":[],"body":{"id":61774,"nodeType":"Block","src":"15140:238:85","nodes":[],"statements":[{"assignments":[61749],"declarations":[{"constant":false,"id":61749,"mutability":"mutable","name":"key","nameLocation":"15158:3:85","nodeType":"VariableDeclaration","scope":61774,"src":"15150:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61748,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15150:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61758,"initialValue":{"arguments":[{"id":61751,"name":"USER_INDEX_TO_LOANSUPPLYDATA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71222,"src":"15174:28:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61754,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61740,"src":"15215:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61755,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61742,"src":"15222:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61752,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15204:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15208:6:85","memberName":"encode","nodeType":"MemberAccess","src":"15204:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15204:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61750,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"15164:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15164:67:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15150:81:85"},{"assignments":[61760],"declarations":[{"constant":false,"id":61760,"mutability":"mutable","name":"loanDetailsBytes","nameLocation":"15254:16:85","nodeType":"VariableDeclaration","scope":61774,"src":"15241:29:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61759,"name":"bytes","nodeType":"ElementaryTypeName","src":"15241:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61765,"initialValue":{"arguments":[{"id":61763,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61749,"src":"15298:3:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61761,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"15273:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15289:8:85","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"15273:24:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":61764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15273:29:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15241:61:85"},{"expression":{"arguments":[{"id":61768,"name":"loanDetailsBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61760,"src":"15330:16:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":61769,"name":"ILoan","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56049,"src":"15349:5:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ILoan_$56049_$","typeString":"type(contract ILoan)"}},"id":61770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15355:14:85","memberName":"LoanSupplyData","nodeType":"MemberAccess","referencedDeclaration":56003,"src":"15349:20:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanSupplyData_$56003_storage_ptr_$","typeString":"type(struct ILoan.LoanSupplyData storage pointer)"}}],"id":61771,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15348:22:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_LoanSupplyData_$56003_storage_ptr_$","typeString":"type(struct ILoan.LoanSupplyData storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_LoanSupplyData_$56003_storage_ptr_$","typeString":"type(struct ILoan.LoanSupplyData storage pointer)"}],"expression":{"id":61766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15319:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15323:6:85","memberName":"decode","nodeType":"MemberAccess","src":"15319:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":61772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15319:52:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData memory"}},"functionReturnParameters":61747,"id":61773,"nodeType":"Return","src":"15312:59:85"}]},"documentation":{"id":61738,"nodeType":"StructuredDocumentation","src":"14815:214:85","text":" @notice Retrieves loan details for a specific user.\n @param user_ The user's address.\n @param loanId_ The user's loan ID\n @return LoanDetails struct containing loan information."},"implemented":true,"kind":"function","modifiers":[],"name":"getSupplyData","nameLocation":"15043:13:85","parameters":{"id":61743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61740,"mutability":"mutable","name":"user_","nameLocation":"15065:5:85","nodeType":"VariableDeclaration","scope":61775,"src":"15057:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61739,"name":"address","nodeType":"ElementaryTypeName","src":"15057:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61742,"mutability":"mutable","name":"loanId_","nameLocation":"15080:7:85","nodeType":"VariableDeclaration","scope":61775,"src":"15072:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61741,"name":"uint256","nodeType":"ElementaryTypeName","src":"15072:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15056:32:85"},"returnParameters":{"id":61747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61746,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":61775,"src":"15111:27:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_memory_ptr","typeString":"struct ILoan.LoanSupplyData"},"typeName":{"id":61745,"nodeType":"UserDefinedTypeName","pathNode":{"id":61744,"name":"ILoan.LoanSupplyData","nameLocations":["15111:5:85","15117:14:85"],"nodeType":"IdentifierPath","referencedDeclaration":56003,"src":"15111:20:85"},"referencedDeclaration":56003,"src":"15111:20:85","typeDescriptions":{"typeIdentifier":"t_struct$_LoanSupplyData_$56003_storage_ptr","typeString":"struct ILoan.LoanSupplyData"}},"visibility":"internal"}],"src":"15110:29:85"},"scope":61858,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":61813,"nodeType":"FunctionDefinition","src":"15603:430:85","nodes":[],"body":{"id":61812,"nodeType":"Block","src":"15789:244:85","nodes":[],"statements":[{"assignments":[61787],"declarations":[{"constant":false,"id":61787,"mutability":"mutable","name":"key","nameLocation":"15807:3:85","nodeType":"VariableDeclaration","scope":61812,"src":"15799:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15799:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61796,"initialValue":{"arguments":[{"id":61789,"name":"USER_ID_PROTECTION_FINANCIAL_TERMS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71243,"src":"15823:34:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61792,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61778,"src":"15870:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61793,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61780,"src":"15877:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15859:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15863:6:85","memberName":"encode","nodeType":"MemberAccess","src":"15859:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15859:26:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61788,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"15813:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15813:73:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15799:87:85"},{"assignments":[61798],"declarations":[{"constant":false,"id":61798,"mutability":"mutable","name":"keyBytes","nameLocation":"15909:8:85","nodeType":"VariableDeclaration","scope":61812,"src":"15896:21:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":61797,"name":"bytes","nodeType":"ElementaryTypeName","src":"15896:5:85","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":61803,"initialValue":{"arguments":[{"id":61801,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61787,"src":"15945:3:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61799,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"15920:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15936:8:85","memberName":"getBytes","nodeType":"MemberAccess","referencedDeclaration":67302,"src":"15920:24:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes32) view external returns (bytes memory)"}},"id":61802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15920:29:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"15896:53:85"},{"expression":{"arguments":[{"id":61806,"name":"keyBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61798,"src":"15977:8:85","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":61807,"name":"IProtection","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57273,"src":"15988:11:85","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IProtection_$57273_$","typeString":"type(contract IProtection)"}},"id":61808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16000:24:85","memberName":"ProtectionFinancialTerms","nodeType":"MemberAccess","referencedDeclaration":57272,"src":"15988:36:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}}],"id":61809,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15987:38:85","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_ProtectionFinancialTerms_$57272_storage_ptr_$","typeString":"type(struct IProtection.ProtectionFinancialTerms storage pointer)"}],"expression":{"id":61804,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15966:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61805,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15970:6:85","memberName":"decode","nodeType":"MemberAccess","src":"15966:10:85","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":61810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15966:60:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms memory"}},"functionReturnParameters":61785,"id":61811,"nodeType":"Return","src":"15959:67:85"}]},"documentation":{"id":61776,"nodeType":"StructuredDocumentation","src":"15384:214:85","text":" @notice Retrieves loan details for a specific user.\n @param user_ The user's address.\n @param loanId_ The user's loan ID\n @return LoanDetails struct containing loan information."},"implemented":true,"kind":"function","modifiers":[],"name":"getProtectionFinancialTerms","nameLocation":"15612:27:85","parameters":{"id":61781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61778,"mutability":"mutable","name":"user_","nameLocation":"15657:5:85","nodeType":"VariableDeclaration","scope":61813,"src":"15649:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61777,"name":"address","nodeType":"ElementaryTypeName","src":"15649:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61780,"mutability":"mutable","name":"loanId_","nameLocation":"15680:7:85","nodeType":"VariableDeclaration","scope":61813,"src":"15672:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61779,"name":"uint256","nodeType":"ElementaryTypeName","src":"15672:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15639:54:85"},"returnParameters":{"id":61785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":61813,"src":"15740:43:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_memory_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"},"typeName":{"id":61783,"nodeType":"UserDefinedTypeName","pathNode":{"id":61782,"name":"IProtection.ProtectionFinancialTerms","nameLocations":["15740:11:85","15752:24:85"],"nodeType":"IdentifierPath","referencedDeclaration":57272,"src":"15740:36:85"},"referencedDeclaration":57272,"src":"15740:36:85","typeDescriptions":{"typeIdentifier":"t_struct$_ProtectionFinancialTerms_$57272_storage_ptr","typeString":"struct IProtection.ProtectionFinancialTerms"}},"visibility":"internal"}],"src":"15739:45:85"},"scope":61858,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":61857,"nodeType":"FunctionDefinition","src":"16315:486:85","nodes":[],"body":{"id":61856,"nodeType":"Block","src":"16505:296:85","nodes":[],"statements":[{"assignments":[61826],"declarations":[{"constant":false,"id":61826,"mutability":"mutable","name":"key","nameLocation":"16523:3:85","nodeType":"VariableDeclaration","scope":61856,"src":"16515:11:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":61825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16515:7:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":61836,"initialValue":{"arguments":[{"id":61828,"name":"ADDRESS_USER_LENDER_NAME_LOANID_BLUEPRINT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71276,"src":"16539:41:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"id":61831,"name":"user_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61816,"src":"16593:5:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":61832,"name":"lenderName_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61818,"src":"16600:11:85","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":61833,"name":"loanId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61820,"src":"16613:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":61829,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16582:3:85","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":61830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16586:6:85","memberName":"encode","nodeType":"MemberAccess","src":"16582:10:85","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":61834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16582:39:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":61827,"name":"createKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71415,"src":"16529:9:85","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,bytes memory) view returns (bytes32)"}},"id":61835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16529:93:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16515:107:85"},{"expression":{"id":61842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":61837,"name":"userBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61823,"src":"16633:13:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":61840,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61826,"src":"16676:3:85","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":61838,"name":"concreteStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71353,"src":"16649:15:85","typeDescriptions":{"typeIdentifier":"t_contract$_IConcreteStorage_$67382","typeString":"contract IConcreteStorage"}},"id":61839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16665:10:85","memberName":"getAddress","nodeType":"MemberAccess","referencedDeclaration":67278,"src":"16649:26:85","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":61841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16649:31:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16633:47:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":61843,"nodeType":"ExpressionStatement","src":"16633:47:85"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":61850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":61845,"name":"userBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61823,"src":"16698:13:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":61848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16723:1:85","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":61847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16715:7:85","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":61846,"name":"address","nodeType":"ElementaryTypeName","src":"16715:7:85","typeDescriptions":{}}},"id":61849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16715:10:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16698:27:85","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4552523a205573657220446f6573204e6f74204861766520426c75657072696e74","id":61851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16727:35:85","typeDescriptions":{"typeIdentifier":"t_stringliteral_f37177c73d6fea2776ecbe25c7d94a6ccc9bb37b622869ee607318e2887e3cc5","typeString":"literal_string \"ERR: User Does Not Have Blueprint\""},"value":"ERR: User Does Not Have Blueprint"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f37177c73d6fea2776ecbe25c7d94a6ccc9bb37b622869ee607318e2887e3cc5","typeString":"literal_string \"ERR: User Does Not Have Blueprint\""}],"id":61844,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"16690:7:85","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":61852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16690:73:85","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":61853,"nodeType":"ExpressionStatement","src":"16690:73:85"},{"expression":{"id":61854,"name":"userBlueprint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":61823,"src":"16781:13:85","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":61824,"id":61855,"nodeType":"Return","src":"16774:20:85"}]},"documentation":{"id":61814,"nodeType":"StructuredDocumentation","src":"16039:271:85","text":" @notice The fetchUserBlueprint function fetches a specified user blueprint\n @param user_ The user eth address\n @param lenderName_ The lender name\n @param loanId_ The users loanId\n @return userBlueprint The user blueprint address"},"implemented":true,"kind":"function","modifiers":[],"name":"fetchUserBlueprint","nameLocation":"16324:18:85","parameters":{"id":61821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61816,"mutability":"mutable","name":"user_","nameLocation":"16360:5:85","nodeType":"VariableDeclaration","scope":61857,"src":"16352:13:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61815,"name":"address","nodeType":"ElementaryTypeName","src":"16352:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":61818,"mutability":"mutable","name":"lenderName_","nameLocation":"16389:11:85","nodeType":"VariableDeclaration","scope":61857,"src":"16375:25:85","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":61817,"name":"string","nodeType":"ElementaryTypeName","src":"16375:6:85","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":61820,"mutability":"mutable","name":"loanId_","nameLocation":"16418:7:85","nodeType":"VariableDeclaration","scope":61857,"src":"16410:15:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":61819,"name":"uint256","nodeType":"ElementaryTypeName","src":"16410:7:85","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16342:89:85"},"returnParameters":{"id":61824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":61823,"mutability":"mutable","name":"userBlueprint","nameLocation":"16486:13:85","nodeType":"VariableDeclaration","scope":61857,"src":"16478:21:85","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":61822,"name":"address","nodeType":"ElementaryTypeName","src":"16478:7:85","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16477:23:85"},"scope":61858,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":60690,"name":"BlueprintBase","nameLocations":["796:13:85"],"nodeType":"IdentifierPath","referencedDeclaration":71548,"src":"796:13:85"},"id":60691,"nodeType":"InheritanceSpecifier","src":"796:13:85"}],"canonicalName":"LenderBlueprint","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[61858,71548,67625,67552,71343,71416,66682],"name":"LenderBlueprint","nameLocation":"777:15:85","scope":61859,"usedErrors":[],"usedEvents":[73996,74006,74016,74026,74040,74050]}],"license":"MIT"},"id":85}
Last updated